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

标签 javascript c# kendo-ui kendo-grid

我目前想要迭代每个 Kendo 网格,并警告用户(如果有待处理的更改)。为此,我使用方法 hasChanges() (我使用批量编辑):

$(".k-grid").each(function () {
    if ($(this).data('kendoGrid').dataSource.hasChanges()) {
        //Warn user about pending changes
    }
}

这很好用。

<小时/>

但是,我有一些只读网格,它们应该始终返回 false。问题是,它们总是返回 true(这是不可能的,因为它们无法编辑)。

我调查了差异,问题是,我的只读网格没有 Model IDAjaxDataSourceBuilder<TModel>定义:

.Model(model => model.Id(entity => entity.SomeId)

必须定义它们才能获得 false来自hasChanges()在只读网格上。

<小时/>

我的问题:

  1. 我可以做 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/

    相关文章:

    asp.net-mvc - 将 T4MVC 和 Kendo UI 用于 ASP.NET MVC

    javascript - Angular Kendo Dropdownlist 自动添加空白选项

    javascript - Jasmine 测试失败 EmberJS 需要 API

    javascript - 在 html5mode angularjs 中注销 url?

    c# - MonthCalendar 上的 DateChanged 事件有问题

    c# - 是否可以将用户过去的对话历史插入/注入(inject)到聊天窗口对话框中?

    javascript - 在 Chrome 中的 XHR 中设置断点

    javascript - 使用 for 循环迭代对象和数组并添加键/值对

    c# - 泛型与接口(interface)的实际优势

    angularjs - Kendo treeList 数据源 - 不与远程数据绑定(bind)