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时显示kendo加载图标?

如何提高kendo ui grid在页面的渲染速度

如何从 Kendo.Grid 的 ClientTemplate 内部向 JavaScript 函数发送参数?

MVC Grid 的 Kendo UI 如何隐藏 ID 列

如何根据 Kendo-Angular2-grid 中的数据自动调整网格列的大小?

Kendo Grid 如何更新、创建、删除数据源