如何将模型传递给编辑器模板

时间:2012-01-20 07:15:38

标签: telerik telerik-grid telerik-mvc mvc-editor-templates

我正在使用带有ajax绑定的Telerik MVC Grid,我使用编辑器模板在InCell编辑模式下使用网格编辑。我想将模型传递给编辑。

据我所知,如果我使用过服务器绑定,则可以将模型传递给编辑器模板。但我不确定Ajax绑定。

使用Ajax绑定时是否可以将模型传递给编辑器模板?

2 个答案:

答案 0 :(得分:1)

是的,你可以!它自动完成。如果您的模板编辑器是一个列表框,您应该通过ViewBag.XXX属性传递列表项。 以下是ProductSelector.ascx编辑器模板的示例:

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<int>" %>

<%Html.Telerik().ComboBox()
        .Name(ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty))
        .AutoFill(true)
            .BindTo(((IEnumerable<Aien.CRM.Biz.Entities.Product>)ViewBag.PossibleProducts).Select(option => new SelectListItem
            {
                Text = (option == null ? "(None)" : option.Title),
                Value = option.Id.ToString()
            }))
        .OpenOnFocus(true)
        .Render();

%>

不要忘记为相关的模型属性添加UiHint属性。

答案 1 :(得分:0)

还有Telerik Mvc Grid的新功能:ForeignKey,它允许您对编辑器模板进行抽象,并简单地为其提供SelectList(或IEnumerable)。 Here就是一个例子。

columns.ForeignKey(o => o.EmployeeID, (IEnumerable)ViewData["employees"], 
                   "ID", "Name").Width(230);

默认情况下,它使用下拉列表,您可以通过客户端模板更改它。