将 Telerik ComboBox 插入 Telerik ASP.Net MVC3 网格



我有一个 ASP.NET 的MVC3视图,它有一个Telerik Grid,它使用视图模型作为其数据。

其中一个

要求是我们需要在其中一个网格列中选择一个下拉列表控件,该控件从查找表中获取数据。

作为MVC3的新手,我认为由于Razor View只能使用一个模型指令IE:

@model IEnumerable<MarketingWebsiteTools.Models.EditableItemInfo>

下拉查找值需要与网格的数据一起映射回 ViewModel。

在这一点上,提到我正在使用Html.Telerik((可能是相关的。ComboBox(( 在 ClientTemplate 中,如下所示:

    .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(new SelectList(((,我需要提供一个类型为 System.Collections.Generic.IEnumerable 的参数,但是我不确定如何从我的视图模型中获取它,或者也许,我应该以另一种方式获取该查找数据......

我看了这个例子:http://www.telerik.com/community/forums/aspnet-mvc/combobox/bindto.aspx

但是,我的代码或智能感知似乎无法识别任何模型IE: .绑定到(新选择列表(模型((

我还看了这个例子:如何在 Telerik 网格中插入下拉列表框

看起来控制器中有一个对方法的调用,但同样,无法访问该控制器。

提前感谢您的任何帮助。

道格

使用模板可以非常轻松地做到这一点。从控制器只需使用 TempDataViewBag 将数据传递到视图

@{
    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);

最新更新