【问题标题】:Inserting a Telerik ComboBox into an Telerik ASP.Net MVC3 Grid将 Telerik ComboBox 插入 Telerik ASP.Net MVC3 网格
【发布时间】:2012-04-27 13:48:54
【问题描述】:

我有一个 ASP.NET MVC3 视图,它有一个 Telerik Grid,它使用一个视图模型来存储它的数据。

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

对于 MVC3 来说相对较新,我认为由于 Razor 视图只能使用一个模型指令 IE:

@model IEnumerable<MarketingWebsiteTools.Models.EditableItemInfo>

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

在这一点上,提到我在 ClientTemplate 中使用 Html.Telerik().ComboBox() 可能是恰当的:

    .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: .BindTo(new SelectList(Model.))

我也看过这个例子: How to insert drop down list box in a Telerik grid

看起来好像调用了控制器中的方法,但同样,无法访问该控制器..

提前感谢您的帮助。

道格

【问题讨论】:

    标签: asp.net-mvc-3 telerik controls viewmodel


    【解决方案1】:

    您可以使用 模板 轻松完成。从控制器仅使用 TempDataViewBag 将数据传递给 View em>

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 2011-02-04
      相关资源
      最近更新 更多