如何使用 DataView 注册 SlickGrid 上的 onCollapse
和 onExpand
事件?
我需要跟踪组的状态 - 哪些组已展开,哪些组已折叠。
最佳答案
简而言之:你不能那样做。 SlickGrid
中没有此类事件对象,而不是 DataView
.
长:
第一种方法: 网格有一个
onClick
方法,您可以订阅该方法。但是,订阅此事件仅适用于单元格或行点击,甚至适用于组行,但不适用于单击展开或折叠时。此事件不会传播到您可以在组上单击的 - 或 +span
元素行。第二种方法 DataView 有一个 on
onRowsChanged
事件,您也可以订阅该事件。例如,您可以尝试从 JS 调试器控制台执行此操作:dataView.onRowsChanged.subscribe(function(e, args) {console.log(args.rows);});
使用此事件似乎让我们更近了一步,因为单击展开/折叠按钮会引发该事件。但是,我们在匿名函数中接收的args
参数仅包含有关需要在网格 Canvas 上更新的行的信息。最后的机会(又称不要在家尝试这些方法或黑客方法) 我已经尝试了所有可能的方法来解决这个问题,但没有成功。我将在下面列出这些内容作为引用(从 SlickGrid v2.2 开始)。
$('.slick-group').click(function(){console.log()});
$('.slick-group-toggle').click(function(){console.log()});
上面列出的尝试仅适用于第一次展开或折叠,因为在操作之后,它们将被分离并附加到 DOM 和网格 Canvas (如果它们适合)(基于 DataView.onRowsChanged
events args
参数,我在上面的2.中提到过)。
关于jquery - SlickGrid 中的展开和折叠事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33909468/