【问题标题】:Editor template for Telerik MVC grid not working [duplicate]Telerik MVC 网格的编辑器模板不起作用 [重复]
【发布时间】:2011-09-06 12:30:07
【问题描述】:

可能重复:
Telerik MVC custom AJAX editor template

我将 MVC Telerik 控件与 ASP.NET MVC 3 razor 视图引擎一起使用。我正在与网格作斗争。我最初发布了一个问题,但没有找到任何运气。在这里:

Telerik MVC custom AJAX editor template

我的视图接受名为EditGrantApplicationViewModel 的视图模型。此视图上有许多不同类型的控件。文本框、下拉菜单和 Telerik 网格。该系统是一个教育基金系统,在申请贷款时,您必须指定您孩子的详细信息。所以我认为如果我在网格中显示孩子,然后可以通过网格添加一个孩子并链接到我的视图模型中的 Children 属性,对用户来说会更好。

public class EditGrantApplicationViewModel
{
   public int Id { get; set; }
   public string EmployeeNumber { get; set; }
   public string Title { get; set; }
   public string FirstName { get; set; }
   public string LastName { get; set; }
   public IEnumerable<Children> Children { get; set; }
}

我将网格绑定到视图模型的 Children 属性,如下所示:

@(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))
)

我选择 AJAX 网格的原因是,当我在网格中单击插入时,整个页面都会得到验证。这里我不想将孩子添加到数据库中,我只想添加到 Children 属性中。

我遇到的问题是编辑器模板。我正在进行内联编辑,我想指定我自己的编辑器模板,因为我想在这个模板中重新排列我的控件。如何为EditGrantApplicationViewModel.Children 创建编辑器模板?

我创建了一个名为Children.cshtml 的局部视图,但它没有被拉入我的网格。有人告诉我让它使用 Children 模型,但是我如何在局部视图中指定它,因为我不能有类似的东西:

@model MyProject.ViewModels.EditGrantApplicationViewModel.Children

我有一个例子,但我无法让它在我的场景中工作。

我这样做是否正确?还有什么可以尝试的?

【问题讨论】:

  • 这是我想要回答的问题。阅读我的帖子,然后您会看到我提到了它!请不要投票关闭。我正在寻找我在其他帖子中没有得到的答案。
  • 我到处寻找答案,但找不到适合我的场景的东西。
  • 这不是骗子,伙计们。继续前进。

标签: c# asp.net asp.net-mvc asp.net-mvc-3 telerik-mvc


【解决方案1】:

我找到了解决方案。

我的视图模型中的 Children 属性是 Children 对象的列表。我在/Shared/Editor/Templates 中创建了一个名为Children.cshtml 的局部视图。

我认为 Children.cshtml 应该像这样接收模型:

@model MyProject.ViewModels.EditGrantApplicationViewModel.Children

这是我在@(Html.Telerik().Grid(Model.Children) 中指定的属性,但它应该接收组成列表的模型对象,命名为 Children 对象:

@model MyProject.DomainObjects.Children

现在它正在被拉过去:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    相关资源
    最近更新 更多