我在MVC应用程序中使用Kendo网格。我需要以编程方式设置jQuery中其中一行的值。使用下面的代码,我看到ID更改为99,描述更改为Test,但复选框不会检查。
var grid = $('#myGrid').data("kendoGrid");
var firstItem = grid.dataSource.data()[0];
var dataItem = firstItem.get('IsChecked');
firstItem.set('IsChecked', true);
firstItem.set('ID', 99);
firstItem.set('Description', 'Test');
grid.refresh();
任何想法为什么?
这是我的EF代码:
public List<Dictionary> GetData()
{
List<Dictionary> result;
using (var context = DataContext)
{
try
{
result = context.Database.SqlQuery<EventType>("spc_GetEventTypes")
.Select(c => new Dictionary
{
IsChecked = true,
ID = c.EventTypeID,
Description = c.EventTypeName
})
.ToList();
return result;
}
catch (Exception ex)
{
return null;
}
}
}
}
这里是创建网格的jQuery:
gridSelect = function(name, idColumnName, descColumnName, descColumnTitle, url, height) {
$(name).kendoGrid({
autoBind: true,
autoHeight: true,
width: 200,
columns: [{
field: "IsChecked",
title: "<input type='checkbox' name='IsChecked' class='centerCheckbox parentCheckbox' />",
template: "<input type='checkbox' name='IsChecked' class='childCheckbox' #= isChecked ? checked='checked' : ''# />",
clientTemplate: "<input type='checkbox' #= IsChecked ? checked='checked':'' # class='chkbx' />",
headerTemplate: "<input type='checkbox' id='masterCheckBox' onclick='checkAll(this)'/>",
attributes: {
class: "ob-center"
},
width: 30
}, {
field: idColumnName,
width: 20
}, {
field: descColumnName,
title: descColumnTitle,
width: 250
}],
dataSource: new kendo.data.DataSource({
schema: {
model: {
id: "ID",
fields: {
isChecked: {
type: "bool",
validation: {
required: false
}
},
ID: {
type: "int",
validation: {
required: true
}
},
Description: {
type: "string",
validation: {
required: true
}
}
}
}
},
transport: {
read: {
url: url,
dataType: "json",
contentType: "application/json"
}
},
serverFiltering: true,
pageSize: 0
}),
height: height,
scrollable: true,
sortable: false,
reorderable: false,
resizable: false,
columnMenu: false,
}).data("kendoGrid") //.hideColumn(idColumnName);
};
由于
卡尔