我无法使用 Kendo UI Listview 保存对服务器的更改。
数据源配置如下:
var listViewDataSource = new kendo.data.DataSource({
transport: {
read: {
url: MyServiceURL
},
update: function() {
console.log("test"); // I expected to enter this function
// when the user changes data on the
//client, never happens
}
},
schema: {
Id: "Id",
fields: {
DeptName: {
editable: false,
},
HourRate: {
type: "number",
editable: true
},
ShowOnSavings: {
type: "boolean",
editable: true
},
ShowOnTechnicalCosts: {
type: "boolean",
editable: true
},
ShowOnOtherCosts: {
type: "boolean",
editable: true
}
}
},
sync: function (e) {
console.log("item synched"); //This should be fired after the
// updated data is sent, never
//happens
}
ListView 的初始化如下:
kendo.bind($("#listview-container"), {
listViewDataSource: listViewDataSource,
onItemSaved: function (e) {
console.log("item saved"); // fired every time the user changes
//an item, as expected
}
})
ListView 正确加载数据。当用户编辑项目时,更改在本地可见(离开编辑模式后)并且按预期触发保存事件。
但是,更改永远不会与服务器同步,永远不会调用我的更新方法,也永远不会调用网络活动。
ListView 保存方法的文档说明如下:
保存编辑的 ListView 项目。触发保存事件。如果未阻止保存事件且验证成功,将调用 DataSource 同步方法。
由于我不调用preventDefault
保存事件,因此我希望数据源能够同步,但这不会发生。手动调用dataSource.sync()
也无济于事。
我很困惑为什么这不起作用。任何提示表示赞赏。