我目前想要迭代每个Kendo Grid,并警告用户,如果有待处理的更改。为此,我使用方法hasChanges()
(我使用批量编辑):
$(".k-grid").each(function () {
if ($(this).data('kendoGrid').dataSource.hasChanges()) {
//Warn user about pending changes
}
}
这很好用。
但是,我有一些只读的网格应该总是返回false。问题是,它们总是返回true(这是不可能的,因为它们无法编辑)。
我调查了差异,问题是,我的只读网格没有定义Model ID
中的AjaxDataSourceBuilder<TModel>
:
.Model(model => model.Id(entity => entity.SomeId)
必须定义它们才能在只读网格上从false
获取hasChanges()
。
我的问题:
hasChanges()
每个网格的情况下使Model ID
正常工作吗?对我来说似乎有点开销。替代
答案 0 :(得分:1)
Kendo Grid有方法getOptions(),并且有可编辑的属性。
var grid = $("#grid").data("kendoGrid");
var options = grid.getOptions();
console.log(options.editable); //outputs true or false
我认为schema.model.id是必要的,因为它是CRUD操作的关键属性。所以你需要它来让hasChanges()正常工作。