На мой взгляд, я отправляю Model, где одно свойство - DataTable (называемое Data), которое я связываю с Кендо Сетка:Kendo Grid, datatable bind: System.ArgumentException: Свойство с указанным именем: ID не может быть найдено по типу: System.Data.DowRowView
@(Html.Kendo().Grid(Model.Data)
.Name("MyGrid")
.Columns(c =>
{
if (Model.Data != null)
{
int index = 0;
foreach (System.Data.DataColumn column in Model.Data.Columns)
{
var col = c.Bound(column.ColumnName).Width("300px").EditorTemplateName("String");
if (index < 2)
{
col.Locked(true).Lockable(false);
}
index++;
}
}
})
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Model(model =>
{
model.Id(p => p.Row[0]);
if (Model.Data != null)
{
model.Id(Model.Data.Columns[0].ColumnName);
int index = 0;
foreach (System.Data.DataColumn column in Model.Data.Columns)
{
var field = model.Field(column.ColumnName, column.DataType);
if (index < 2)
{
field.Editable(false);
}
index++;
}
}
})
.PageSize(20)
.Create(update => update.Action("Create", "Home"))
.Update(up => up.Action("UpdateRow", "Home"))
)
.Editable(editable => editable
.Mode(GridEditMode.InCell)
)
.Selectable(selectable =>
{
selectable.Mode(GridSelectionMode.Single);
selectable.Type(GridSelectionType.Row);
})
.Scrollable(scr => scr.Height(500))
.Reorderable(reorder => reorder.Columns(true))
.Resizable(r => r.Columns(true))
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
.HtmlAttributes(new { style = "height:100%" })
.Pageable()
.Navigatable()
.Sortable()
.Groupable(g => g.ShowFooter(true))
)
проблема с линии field.Editable (ложной) - когда я пытаюсь установить это верно работает. В нем говорится, что у меня нет значения ID в моем DataRowView - я уверен, что у моего DataTable есть столбец с именем ID, я проверил его как 100 + раз. Exact Ошибка:
Property with specified name: ID cannot be found on type: System.Data.DataRowView Parameter name: propertyName
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentException: Property with specified name: ID cannot be found on type: System.Data.DataRowView Parameter name: propertyName
Также очень важно активировать автосинхронизацию: – Kula