Kendo Grid hasChanges,我如何处理只读网格?

时间:2016-02-04 20:10:33

标签: javascript c# kendo-ui kendo-grid

我目前想要迭代每个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()

我的问题:

  1. 我可以在不设置hasChanges()每个网格的情况下使Model ID正常工作吗?对我来说似乎有点开销。
  2. 替代

    1. 如果网格可编辑,我可以通过JS在运行时检查吗?

1 个答案:

答案 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()正常工作。