如何使用 MVC Razor 在编辑器模板中将 Kendo UI Grid 绑定到我的模型集合

Posted

技术标签:

【中文标题】如何使用 MVC Razor 在编辑器模板中将 Kendo UI Grid 绑定到我的模型集合【英文标题】:How to bind a Kendo UI Grid to a collection of my model in an editor template using MVC Razor 【发布时间】:2014-05-21 08:11:42 【问题描述】:

我有一个基于类似模型的网格

public class UserModel

  ...
  public IList<UserOrgModel> UserOrg get; set;
  ...

此 Grid 设置为 .Editable(e =&gt; e.Mode(GridEditMode.PopUp).TemplateName("...") 并打开此 editorTemplate 以编辑我选择的行(通过按操作按钮)。

此编辑器模板还包含一个将绑定到我的集合的网格。

我是这样定义我的网格的

@(html.Kendo().Grid(Model.UserOrg)
  .Name("blabla")
  .Columns(col => 
  
    col.Bound(c => c.Id);
  )
)

当我这样做时,基于我的收藏的网格总是空的。 任何想法如何使用 Kendo UI 及其网格来做我想做的事。我不知道如何将我的网格与模型的“集合”绑定。

【问题讨论】:

您是否尝试在网格中使用网格?并且您希望将“内部”网格绑定到集合? 使用 Kendo,您可以使用设置为 .Mode(GridEditMode.Popup) 的属性更新行...此弹出窗口打开定义的 EditorTemplate。在这个模板中需要另一个网格。 【参考方案1】:

我在这里找到了答案: Grid Popup Editing Navigation Property Collection with nested Grid

我下载了演示,我想要的一切都在那里。这正是我想要的!

【讨论】:

【参考方案2】:

老实说,我没有完全理解你的问题。但是,如果您尝试将网格绑定到模型中的集合。给你:

在 Kendo UI 在线演示中,this example may help you。滚动到页面底部,单击“ASP.NET MVC”,然后单击“local_data.cshtml”。这是经过编辑的代码示例,更像您的示例:

@model UserModel

@(Html.Kendo().Grid(Model.UserOrg)
    .Name("Grid")
    .Columns(columns =>
    
        //set up your columns here
        columns.Bound(u => u.Name).Title("Name");
    )
    .Pageable()
    .Sortable()
    .Scrollable(scr=>scr.Height(430)) 
    .Filterable()    
    .DataSource(dataSource => dataSource        
        .Ajax()
        .PageSize(20)
        .ServerOperation(false)        
     )
)

更新

我发现了另一篇可能对您有所帮助的 SO 文章:Kendoui MVC EditorTemplateName do not work in PopUp edit mode

我认为您想要的是在您使用 column.EditorTemplateName("..") 引用的 ~\View\Shared\EditorTemplates 文件夹中创建一个编辑器模板。

【讨论】:

我编辑了我的问题...也许你会理解得更好

以上是关于如何使用 MVC Razor 在编辑器模板中将 Kendo UI Grid 绑定到我的模型集合的主要内容,如果未能解决你的问题,请参考以下文章

在 Razor 语法中为 Telerik MVC Grid 定义模板列

如何在 Visual Studio 2017 的 ASP.NET MVC 中创建自定义生成/脚手架模板(Razor)?

如何使用 Blazor 和 NetCore 5 在电子邮件中将 razor 组件作为正文发送?

[Asp.Net Core]MVC_Razor布局

[Asp.Net Core]MVC_Razor布局

在 asp.net mvc razor 应用程序中将 Datetime C# 类型转换为 Date javascript