我开始研究如何通过数据源将网格编辑回到服务中。
根据文档,我设置了一个本地测试数据源,如下所示。
function getDataSource() {
var gridData = [
{
col1: new CellData('1', 'data1-1'),
col2: new CellData('2', 'data1-2')
},
{
col1: new CellData('3', 'data2-1'),
col2: new CellData('4', 'data2-2')
},
];
var dataSrc = new kendo.data.DataSource({
batch: true,
transport: {
read: function (e) {
e.success(gridData);
},
update: function (e) {
// batch is enabled
var updateItems = e.data.models;
// This is not called
// on success
e.success();
},
create: function (e) {
e.success(e.data);
},
destroy: function (e) {
e.success();
}
}
});
return dataSrc;
}
我有一个工具栏设置(使用“保存更改”),这是调用SaveChanges配置事件,但是,无法看到我需要做什么才能使以下事件发生..
我在添加新记录时遇到了同样的问题(虽然我无法获得网格“addRow”甚至在这里开火)
我有正在运行的示例here
任何帮助都将非常感谢!
答案 0 :(得分:0)
您需要指定DataSource架构才能工作:
var dataSrc = new kendo.data.DataSource({
batch: false, // true would mean transport functions get multipe models in e.data
transport: {
// ....
},
schema: {
data: function (response) {
return response;
},
model: {
id: "id",
fields: {
id: {
editable: false,
defaultValue: 0 // 0 == new / unsaved row
},
col1: {
editable: true,
// new items would have that using default add button
defaultValue: {
id: 0,
CategoryName: ""
},
fields: { id: { editable: true }, display: { editable: true }
},
col2: {
editable: true,
fields: { id: { editable: true }, display: { editable: true } }
}
}
}
}
});
另请注意:
(demo)