2012-12-17 50 views
3

當我通過將列標題拖動到分組面板進行分組時,數據源的change事件觸發。這是設計嗎?Kendo UI網格:按設計,分組會導致dataSource更改事件觸發嗎?

編輯:當網格按列排序時,事件也會發生。

我的問題的一部分基礎是「變化」這個詞是不明確的。我一直在閱讀文檔很長一段時間,有時作者希望這個詞的意思是「經歷修改」,有時他們希望它意味着「被替換」。一些Windows控制軟件公司通過使用單獨的單詞「修改」和「更改」並相應地命名它們的事件來區分這兩種情況。所以目前並不總是清楚的。

「改變你的下線」。在那裏它意味着「穿上一雙新的短褲」,而不是「在你穿着的那雙短褲上縫上一個鈕釦」。

如果kendo dataSource.change事件在分組和排序發生時被設計觸發,那麼如何區分這兩個「非必要」更改(數據還沒有被修改,它們只是以不同的順序)以及網格的底層數據集被全部替換的場景?有沒有辦法「監聽」dataSource.dataCompletelyReplaced方案?比較多個WinForms網格上的DataSourceChanged事件,當數據集中的項目發生更改但數據集取代且網格反彈時,此事件觸發而不是

「經營者變更」和「被替代」是非常不同的情況。

在Kendo網格中,一個示例可能是網格在配置中初始化爲空數組dataSource.data = [],然後可能但不一定在用戶交互之後,空數組被替換爲使用dataSource.data(someNewData)的實際數據集。

回答

3

是的,當數據分組(或排序,過濾等)時,數據源的更改事件應該觸發。 Groping是一種數據操作,它改變了DataSource的視圖 - 數據項的當前狀態。

在「dataCompletelyReplaced」操作後沒有單獨的內置事件觸發。如果您正在編輯(或插入)特定記錄,則可以使用事件數據的「操作」參數。

$("#grid").data("kendoGrid") 
    .dataSource.bind("change", function(e) { 
     e.action 
    }); 
相關問題