Kendo Grid hasChanges,如何处理只读网格?
Posted
技术标签:
【中文标题】Kendo Grid hasChanges,如何处理只读网格?【英文标题】:Kendo Grid hasChanges, how can I handle readonly grids? 【发布时间】:2016-05-14 15:13:09 【问题描述】:我目前想迭代每个 Kendo Grid,并在有未决更改时警告用户。为此我使用方法hasChanges()
(我使用批量编辑):
$(".k-grid").each(function ()
if ($(this).data('kendoGrid').dataSource.hasChanges())
//Warn user about pending changes
这很好用。
但是,我有一些只读网格,它们应该总是返回 false。问题是,它们总是返回 true(这是不可能的,因为它们不能被编辑)。
我调查了差异,问题是,我的只读网格没有定义 AjaxDataSourceBuilder<TModel>
中的 Model ID
:
.Model(model => model.Id(entity => entity.SomeId)
必须将它们定义为从只读网格上的hasChanges()
获取false
。
我的问题:
-
我能否在不设置
Model ID
每个网格的情况下使hasChanges()
正常工作?这对我来说似乎有点开销。
替代
-
我可以通过 JS 在运行时检查网格是否可编辑吗?
【问题讨论】:
【参考方案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() 正常工作。
【讨论】:
以上是关于Kendo Grid hasChanges,如何处理只读网格?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Kendo.Grid 的 ClientTemplate 内部向 JavaScript 函数发送参数?