我正在使用带有 ajax 绑定的 Telerik MVC Grid,并且我在 InCell 编辑模式下使用带有编辑器模板的网格编辑。我想将模型传递给编辑。
据我所知,如果我使用了服务器绑定,则可以将模型传递给编辑器模板。但我不确定 Ajax 绑定。
使用 Ajax 绑定时是否可以将模型传递给编辑器模板?
我正在使用带有 ajax 绑定的 Telerik MVC Grid,并且我在 InCell 编辑模式下使用带有编辑器模板的网格编辑。我想将模型传递给编辑。
据我所知,如果我使用了服务器绑定,则可以将模型传递给编辑器模板。但我不确定 Ajax 绑定。
使用 Ajax 绑定时是否可以将模型传递给编辑器模板?
是的你可以!它会自动完成。如果您的模板编辑器是一个列表框,您应该通过 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 属性。
Telerik Mvc Grid 还有一个新功能,称为:ForeignKey,它允许您对编辑器模板进行抽象并简单地为其提供 SelectList(或 IEnumerable)。这是一个例子。
columns.ForeignKey(o => o.EmployeeID, (IEnumerable)ViewData["employees"],
"ID", "Name").Width(230);
默认情况下它使用下拉列表,您可以通过客户端模板更改它。