5

@(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")) がヒットしないので、まだ何か問題があるに違いないと思います。

4

2 に答える 2

2

DataTable にバインドできます。実際、私たちは多くの動的グリッドを実行しており、DataTable が唯一の手段です。ただし、バインディングは少し異なります。

私たちの 1 つのスニペットは次のようになります。

@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)
     )
于 2013-09-17T18:42:23.297 に答える