剑道网格无法更新“脏”

时间:2018-04-06 12:39:22

标签: javascript kendo-ui kendo-grid

我的项目中有一个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;
                    }
                }
            });

1 个答案:

答案 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);
}