3

当我通过将列标题拖动到分组面板进行分组时,会触发 dataSource 的更改事件。这是设计使然吗?

编辑:当网格按列排序时,也会发生该事件。

我的问题的部分基础是“变化”这个词是模棱两可的。我已经阅读文档很长时间了,有时作者希望这个词表示“正在修改”,有时他们希望它表示“被替换”。一些 Windows 控制软件公司通过使用单独的词“修改”和“更改”来区分这两种情况,并相应地命名它们的事件。因此,它的意图并不总是很清楚。

“改变你的内裤”。那里的意思是“穿上一条新的内裤”,而不是“在你穿的内裤上缝一个纽扣”。

如果 kendo dataSource.change 事件在分组和排序发生时按设计触发,如何区分这两个“非必要”更改(数据没有被修改,它们只是顺序不同)以及场景网格的基础数据集被全部替换?有没有办法“监听” dataSource.dataCompletelyReplaced 场景?比较许多 WinForms 网格上的 DataSourceChanged 事件,该事件不是在数据集中的项目发生更改时触发,而是在数据集被替换并且网格重新启动时触发。

“经历变化”和“被取代”是非常不同的场景。

在 Kendo 网格中,一个示例可能是在配置中使用空数组初始化网格dataSource.data = [],然后稍后(可能但不一定在某些用户交互之后)将空数组替换为使用dataSource.data(someNewData).

4

1 回答 1

3

是的,数据源的更改事件应该在数据被分组(或排序、过滤等)时触发。摸索是一种数据操作,它改变了数据源的视图——数据项的当前状态。

在“dataCompletelyReplaced”操作之后不会触发单独的内置事件。如果您正在编辑(或插入)特定记录,您可以使用事件数据的“action”参数。

$("#grid").data("kendoGrid")
    .dataSource.bind("change", function(e) { 
        e.action 
    });
于 2013-01-01T11:13:09.457 回答