Telerik MVC 自定义 AJAX 编辑器模板
Posted
技术标签:
【中文标题】Telerik MVC 自定义 AJAX 编辑器模板【英文标题】:Telerik MVC custom AJAX editor template 【发布时间】:2011-11-08 09:49:33 【问题描述】:我将MVC version of the Telerik controls
与ASP.NET MVC
和razor view engine
一起使用。我有一个 AJAX 网格。当我单击编辑时,我希望它以表单样式显示数据。但问题是我想以我希望它们显示的方式重新排列表单控件。我该怎么做这样的事情?目前,这些控件都在彼此之下。我想创建自己的编辑布局。
我在视图上有很多其他控件,其中一个就是这个网格。我的视图模型对象有一个子对象列表,我想使用我的网格来填充这个列表。
我的视图的视图模型:
public class EditGrantApplicationViewModel
public string EmployeeNumber get; set;
public string Title get; set;
public string FirstName get; set;
public string LastName get; set;
// Other properties
// I want this to be populated from the grid
public IEnumerable<Children> Children get; set;
我的子列表的网格代码:
@(html.Telerik().Grid(Model.Children)
.Name("grdChildren")
.Columns(column =>
column.Bound(x => x.Id);
column.Bound(x => x.FullName);
)
.DataKeys(keys =>
keys.Add(x => x.Id);
)
.DataBinding(dataBinding =>
dataBinding.Ajax()
.Select("_SelectAjaxEditing", "Grid")
.Insert("_InsertAjaxEditing", "Grid")
.Update("_SaveAjaxEditing", "Grid")
.Delete("_DeleteAjaxEditing", "Grid");
)
.ToolBar(commands => commands.Insert().ButtonType(GridButtonType.Text))
.Editable(editing => editing.Mode(GridEditMode.InForm))
)
我不确定我的编辑器模板应该是什么样子?它必须扩展什么?而且我无法让它以内联形式显示。我研究了布拉德威尔逊的样本,但我没有得到它。有人可以解释发生了什么吗?
只是另一个问题.. 在我的另一个页面上,我有一个网格,页面上有其他 HTML 控件。如果我正忙于编辑网格中的数据,然后单击插入,如何防止页面上的其他控件不被验证?
【问题讨论】:
【参考方案1】:您可以为模型定义自定义编辑器模板并根据需要排列字段。 This 代码库项目展示了如何。
【讨论】:
谢谢。我看到有一个 .ascx 文件。网格所在的索引页面中使用的位置在哪里?我无法弄清楚这部分? 这就是 ASP.NET MVC 编辑器模板的工作方式。查看此博客文章以更深入地了解此功能:bradwilson.typepad.com/blog/2009/10/… 您需要为您的模型创建一个 ASP.NET MVC 编辑器模板。一旦它与 Html.EditorForModel 一起使用,它将与网格一起使用。试用代码库 - 检查 ~/Views/Shared/EditorTemplates。我不知道如何进一步提供帮助。 它就像魔术一样工作。如果您的模型名为“Customer”,那么您需要创建一个名为 Customer.cshtml 的局部视图并将其放入 ~/Views/Shared/EditorTemplates。 ASP.NET MVC 会在使用 Html.EditorForModel 时选择它。 谢谢。但是如果我不想使用 EditorFor 怎么办?以上是关于Telerik MVC 自定义 AJAX 编辑器模板的主要内容,如果未能解决你的问题,请参考以下文章
asp.net MVC 4 Telerik Grid Ajax 问题
Telerik MVC Grid:如何在列中使用 DropDownList?