2016-02-04 35 views
1

我现在想重复有关每个剑道电网,并警告用户,如果有挂起的变化。为此,我使用的方法hasChanges()(我用的批量编辑):剑道电网hasChanges,我该怎么处理只读网格?

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

这工作得很好。


但是,我有一些readonly网格应该总是返回false。问题是,它们总是返回真实的(这是不可能的,因为它们不能被编辑)。

我调查的差异,问题是,我只读电网没有在AjaxDataSourceBuilder<TModel>Model ID定义:

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

他们必须被定义为得到hasChanges()false一个只读网格。


我的问题:

  1. 我可以hasChanges()正常工作时没有设定Model ID每个网格?这对我来说似乎有点儿空虚。

备用

  • 我可以通过JS在运行时检查,如果电网是可编辑的?
  • 回答

    1

    剑道网格具有方法getOptions()和有属性编辑。

    var grid = $("#grid").data("kendoGrid"); 
    var options = grid.getOptions(); 
    console.log(options.editable); //outputs true or false 
    

    我认为schema.model.id是必要的,因为它是CRUD操作的关键属性。所以你需要它hasChanges()才能正常工作。