我正在使用包含 checkcolumn 的分组网格。我需要控制复选框的选择,即允许或不允许选择。我使用beforecheckchange函数来做到这一点。要解释该问题,请考虑该方案。有五个组,每组包含3行,其中只有最后一个组才被展开。 如果我选择最后一行检查列,则返回的rowIndex将为2,因为只有3行可见。这是虚拟或可见rowindex返回如何知道/获取实际行索引没有扩大所有组。
我的Bushiness要求要求我知道从商店获取记录的确切行索引。检查列与商店中的数据/记录映射,允许我决定是否允许检查复选框。还检查了较低组中的一个,然后也检查了较高级别的同级复选框。
我正在使用ExtJS 5.x.x框架。
我已经检查了树网格存在同样的问题。
提前感谢你。
答案 0 :(得分:3)
我相信这可以解决您的问题:
// You checkcolumn listeners
listeners: {
beforecheckchange : function(component, rowIndex, checked, eOpts) {
var row = component.getView().getRow(rowIndex),
record = component.getView().getRecord(row),
realIndex = component.getView().ownerCt.getStore().indexOf(record);
console.log(rowIndex, realIndex);
}
}
答案 1 :(得分:0)
您使用的是什么版本的ExtJS?
ExtJS 4.2.1中至少有两个已知的分组错误,分别在4.2.2(EXTJS-10027)和4.2.3(EXTJS-10043)中修复。
在您的Ext版本中(或通过简单升级)修复这些错误比为每个网格编写解决方法更容易。
如果这不能解决您的问题,并且您使用的是Ext4,请考虑滥用基础模型上的“转换”功能。我担心,这在ExtJS5中不再起作用,但暂时它是一个很好的临时解决方案。