2016-02-04 38 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()才能正常工作。