kendo-ui - Kendo DataSource 使用 DataTable 时如何定义 Model.Id

标签 kendo-ui kendo-grid kendo-asp.net-mvc

在@(Html.Kendo().Grid(Model) 中定义DataSource 时,我已经成功使用

.DataSource( dataSource => .Ajax( ).Model( model => model.Id( m => m.PROPERTY ) ) )

其中 PROPERTY 是模型对象的属性。如果 Model 是 System.Data.DataTable 并且 DataTable 中的 Id 列是 TableId,那么定义 Model.Id 的正确语法是什么?

换句话说,model.Id(m => ???)。

我试过了,model.Id( m => Model.PrimaryKey ) ,这似乎满足了设置 model.Id 的要求,但是更新操作( .Update(update => update.Action("MyUpdateMethod", "MyController") )从未命中,所以我认为肯定还是有问题。

最佳答案

您可以绑定(bind)到 DataTable。事实上,我们做了很多动态网格,而 DataTable 是我们唯一的资源。不过,绑定(bind)有点不同。

我们的一个片段是这样的:

@model System.Data.DataTable
@(Html.Kendo().Grid(Model)
    .Name("SomeGrid")
    .Columns(columns=>
      { 
          foreach(System.Data.DataColumn column in Model.Columns)
          {
              columns.Bound(column.ColumnName).Title(column.Caption).Width(200);
          }
       }
    )
    .Selectable(selectable=>selectable
       .Type(GridSelectionType.Row)
    )
    .DataSource(dataSource => dataSource
        .Ajax()
        .Model(model =>
             {
                 foreach(System.Data.DataColumn column in Model.Columns)
                 { 
                     model.Field(column.ColumnName,column.DataType);
                 }
             }
         )
         .Read(read=>Action("SomeMethod", "SomeController"))
         .PageSize(20)
     )

关于kendo-ui - Kendo DataSource 使用 DataTable 时如何定义 Model.Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18727951/

相关文章:

kendo-ui - Kendo ListView 中的 Kendo UI uploader

kendo-ui - e.slice 不是带有 Kendo UI 的 ASP.NET MVC 中的函数错误

css - KendoUI Column Center 自定义MVC扩展方法

checkbox - KendoUI 网格复选框单击事件

javascript - 参数 '' 不是函数,在 Kendo ( AngularJS ) 中未定义

javascript - 有什么方法可以在剑道网格自定义弹出模板中设置默认值?

javascript - Kendo Grid 命令栏——如何用图标替换按钮?

asp.net - Kendo 批量编辑中自动完成的验证

javascript - Kendo UI - 网格中的工具提示

css - Kendo 数字文本框文本填充