我目前想要迭代每个 Kendo 网格,并警告用户(如果有待处理的更改)。为此,我使用方法 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
即可正常工作每个网格?对我来说这似乎有点开销。
备用
- 我可以在运行时通过 JS 检查网格是否可编辑吗?
最佳答案
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() 正常工作。
关于javascript - Kendo Grid hasChanges,我如何处理只读网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35210663/