2012-04-27 6 views
0

私は、そのデータにビューモデルを使用するTelerikグリッドを持つASP.NET MVC3ビューを持っています。TelerikにTelerik ComboBoxを挿入するASP.Net MVC3グリッド

ルックアップテーブルからデータを取得するグリッド列の1つにドロップダウンコントロールが必要であることが条件の1つです。

MVC3では比較的新しいので、私はカミソリビュー以来、唯一のモデルディレクティブIEを使用できることを考え出し:ドロップダウン・ルックアップがためのデータと一緒にバックビューモデルにマッピングする必要がありvalueswouldこと

@model IEnumerable<MarketingWebsiteTools.Models.EditableItemInfo> 

をグリッド。このようなClientTemplateで

この時点で、私がHtml.Telerikを(使用していることを言及する適切かもしれません)コンボボックス():。

.Columns(columns => 
    { 
    columns.Bound(o => o.ItemNmbr).Width(65);//.ClientTemplate("<label name='ProductIdentifier' />"); 
    columns.Bound(o => o.Description).Width(65) 
       .ClientTemplate(Html.Telerik().ComboBox() 
       .Name("Special") 
       **.BindTo(new SelectList())** 
       .ToHtmlString()); 
    columns.Bound(o => o.Start_Date).Width(75).Format("{0:d}"); 
    columns.Bound(o => o.End_Date).Width(75).Format("{0:d}"); 
    columns.Bound(o => o.PromotionText).Width(75); 
    columns.Command(commands => commands.Delete()).Width(125).Title("Delete"); 
    }) 

私の質問は次のとおりです。BindToに関しては(新しいSelectList())、私はSystem.Collections.Generic.IEnumerable型のパラメータを提供する必要がありますが、私はどのように私のviewmodelからそれを取得するかわからない、または多分、私はその参照データを別の方法を取得する必要があります...

私はこの例を見ました: http://www.telerik.com/community/forums/aspnet-mvc/combobox/bindto.aspx

しかし、私のコードやインテリセンスはIE任意のモデルを認識していないようです: .BindTo(。新しいSelectListの(モデル))

私はまた、この例を見て: に見えるHow to insert drop down list box in a Telerik grid

コントローラ内のメソッドへの呼び出しがありますが、そのコントローラへのアクセスはありません。

ありがとうございました。

ダグは

答えて

0

あなたはテンプレートを使用して、それは非常に簡単に行うことができます。コントローラからちょうどビューにデータを渡すためにTempDataをまたはViewBagを使用。

@{ 
    List<AdjustmentReasonCodes> salesAuditReasons = new List<AdjustmentReasonCodes>(); 
    salesAuditReasons = (List<AdjustmentReasonCodes>)TempData["SalesAuditReason"]; 
} 

column.Template(@<select id="@("ddlSalesAuditReason" + @item.CustCode.Replace(" ", "").Replace("-", "").Trim())" class="DropDown"> 
        <option value="0">--Select--</option> 
        @foreach (AdjustmentReasonCodes adrc in salesAuditReasons) 
        { 
         if (item.RefReasonForAuditAdjustment == adrc.ReasonCode) 
         { 
         <option value="@(adrc.ReasonCode)" selected="selected">@adrc.ReasonDescription</option> 
         } 
         else 
         {       
         <option value="@(adrc.ReasonCode)">@adrc.ReasonDescription</option> 
         } 
        } 
       </select>).Title("Audit Reason").Width(135); 
関連する問題