当使用Ext.selection.RowModel(默认)selModel时,会为网格选择执行什么extjs4.2标准函数?

当使用Ext.selection.RowModel(默认)selModel时,会为网格选择执行什么extjs4.2标准函数?,select,extjs,grid,extjs4,nested,Select,Extjs,Grid,Extjs4,Nested,当嵌套网格设置为renderTo到rowexpander div id时,Ext.grid.Panel rowexpander插件的工作方式存在错误 当实现时,很难看到实际选择的是什么。这是因为配置“disableSelection”和“trackMouseOver”都要考虑高亮显示。我必须设置“trackMouseOver:false”,这样悬停在网格行上不会干扰复制此行为。然后必须设置“disableSelection:false”,以便实际发生此选择问题 问题在于,选择父网格索引0行的嵌套

当嵌套网格设置为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处理其他网格

我想问一下如何修复它,或者让我靠近它,我会(经常)投票给你。但是,如果您至少能给我一个线索,告诉我这个选择函数在框架中的调用位置,这将使我走上正确的轨道,并可以调试和发现它的修复方法。我已经读到事件可能会发生泡沫,也许这就是这里发生的事情。它似乎对行也有一个句柄,因为当我双击嵌套的网格行时,它不仅尝试展开该行,还尝试展开父网格行(与行索引匹配)中的行


您是如何加载选择模型的

selModel: 'rowselection',


如果使用第一种语法,则应该为每个网格获得独立的选择模型。如果使用第二种语法,则只能得到一个在所有网格实例之间共享的选择模型

创建任何递归嵌套网格后,我必须调用此行,以便click和dblclick(以及其他)事件不会冒泡/传播到父网格

grid[cnt].getEl().swallowEvent(['mouseover', 'mousedown', 'click', 'dblclick', 'onRowFocus']);

同样的行为,无论我用哪种方法。之前,我对selModel一无所知。但我也尝试了selModel:Ext.create('Ext.selection.RowModel'),第一个应该是行选择模型的两个实例。我不知道问题出在哪里。更重要的是,你没有提供你的代码。我在页面上有多个顶级网格,具有相同的网格定义。这在我的设置中可能是独一无二的。然后,它们中的每一个都有相同的网格定义,用作嵌套网格。虽然当我在循环中创建每个网格(无论是顶层还是嵌套层)时,我会传递自定义配置以提取不同的数据。它为后续嵌套网格选择相同的索引。
grid[cnt].getEl().swallowEvent(['mouseover', 'mousedown', 'click', 'dblclick', 'onRowFocus']);