我的项目中有一个kendo网格,如果用户对网格内的项目进行了更改,我想进行“未保存的更改”提示。我想的是检查e.model中的“脏”字段。但是,即使存在变化,“脏”也总是显示为假。
这是我的数据源代码
var fieldDataSource = new kendo.data.DataSource({
data: gridData,
pageSize: 50,
change: function (e) {
if (e.action == "itemchange") {
e.items[0].dirtyFields = e.items[0].dirtyFields || {};
e.items[0].dirtyFields[e.field] = true;
}
}
});
答案 0 :(得分:0)
要将dirty从false更改为true,您必须使用方法observable.set,否则它不会看到您的更改。
let dirtyFields = e.items[0].get('dirtyFields');
if (!dirtyFields) {
let t = {};
t[e.field] = true;
e.items[0].set('dirtyFields', t);
} else {
dirtyFields.set(e.field, t);
}