当我通过将列标题拖动到分组面板进行分组时,数据源的更改事件会触发。这是设计使然吗?
编辑:当网格按列排序时也会发生此事件。
我的问题的部分依据是“更改”一词含糊不清。我已经阅读了很长时间的文档,有时作者希望这个词的意思是“进行修改”,有时他们希望它的意思是“被替换”。一些 Windows 控制软件公司通过使用单独的词“修改”和“更改”来区分这两种情况,并相应地命名它们的事件。因此并不总是很清楚意图是什么。
“换内裤”。那里的意思是“穿上一条新的短裤”,而不是“在你穿的那条短裤上缝一个纽扣。”
如果 kendo dataSource.change 事件在分组和排序发生时被设计触发,如何区分这两个“非必要”变化(数据没有被修改,它们只是顺序不同)和网格的底层数据集被整个替换的场景?有没有办法“监听” dataSource.dataCompletelyReplaced 场景?比较许多 WinForms 网格上的 DataSourceChanged 事件,该事件不会在数据集中的项目发生更改时触发,而是在数据集被替换并且网格重新启动时触发。
“经历变化”和“被取代”是截然不同的情况。
在 Kendo 网格中,一个示例可能是网格在配置中使用空数组 dataSource.data = []
初始化,然后可能但不一定在某些用户交互之后,使用 dataSource.data(someNewData)
将空数组替换为实际数据集。
最佳答案
是的,数据源的更改事件应该在数据分组(或排序、过滤等)时触发。摸索是一种数据操作,它会更改数据源的 View - 数据项的当前状态。
没有单独的内置事件会在“dataCompletelyReplaced”操作后触发。如果您正在编辑(或插入)特定记录,您可以使用事件数据的“action”参数。
$("#grid").data("kendoGrid")
.dataSource.bind("change", function(e) {
e.action
});
关于grid - Kendo UI 网格 : does grouping cause the dataSource change event to fire, 的设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13920670/