当嵌套网格设置为renderTo到rowexpander div id时,Ext.grid.Panel rowexpander插件的工作方式存在错误。
实施此功能后,很难看到实际选择的内容。这是因为配置“disableSelection”和“trackMouseOver”都要考虑突出显示。我必须设置“trackMouseOver:false”,以便将鼠标悬停在网格行上不会干扰重现此行为。然后必须设置“disableSelection:false”,以便实际发生此选择问题。
问题在于,当您选择父网格索引0行的嵌套网格的索引1时,也会选择索引1行父网格。如果选择父网格索引0行的嵌套网格的索引2,则也会选择父网格的索引2。
当选择935424时,选择815138,因为它们都是索引0。
当选择1056257时,选择1013525,因为它们都是索引1。
选择1200191时,选择1261631,因为它们都是索引2。
我怀疑选择模型实例可能会与网格和嵌套网格共享,因为我使用相同的定义。它们当然是相同定义的不同实例,但我不确定框架如何使用Ext.create处理其他网格?
我想问一下如何解决它或让我接近,我会投票给你(经常)。但是,如果你至少可以给我一个关于在框架中调用这个选择函数的线索,那将使我走上正确的轨道并且可以调试并发现它的修复。我已经读到事件可能会冒泡,也许这就是这里发生的事情。它似乎也在行上有一个句柄,因为当我双击嵌套的网格行时,它不仅尝试扩展该行,而且还尝试扩展父网格行(与行索引匹配)的行。
答案 0 :(得分:1)
在创建任何递归嵌套网格之后,我不得不调用此行,以便click和dblclick(和其他)事件不会冒泡/传播到父网格。
grid[cnt].getEl().swallowEvent(['mouseover', 'mousedown', 'click', 'dblclick', 'onRowFocus']);
答案 1 :(得分:0)
您是如何加载选择模型的?
selModel: 'rowselection',
或者
selModel: Ext.create('Ext.selection.RowModel'),
如果使用第一种语法,则应为每个网格获得一个独立的选择模型。如果使用第二种语法,则只能获得一个在所有网格实例之间共享的选择模型。