剑道网格有变化,如何处理只读网格



>我目前想迭代每个剑道网格,如果有挂起的更改,请警告用户。为此,我使用方法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


我的问题:

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

互生

  1. 我可以在运行时通过 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()正常工作。

最新更新