Extjs Grouped Grid checkcolumn更改实际的rowIndex

时间:2014-10-16 16:35:05

标签: extjs grid grouping extjs5

我正在使用包含 checkcolumn 分组网格。我需要控制复选框的选择,即允许或不允许选择。我使用beforecheckchange函数来做到这一点。要解释该问题,请考虑该方案。有五个组,每组包含3行,其中只有最后一个组才被展开。 如果我选择最后一行检查列,则返回的rowIndex将为2,因为只有3行可见。这是虚拟或可见rowindex返回如何知道/获取实际行索引没有扩大所有组。

我的Bushiness要求要求我知道从商店获取记录的确切行索引。检查列与商店中的数据/记录映射,允许我决定是否允许检查复选框。还检查了较低组中的一个,然后也检查了较高级别的同级复选框。

我正在使用ExtJS 5.x.x框架。

我已经检查了树网格存在同样的问题。

提前感谢你。

2 个答案:

答案 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);
    }
}

示范小提琴:https://fiddle.sencha.com/#fiddle/c3e

答案 1 :(得分:0)

您使用的是什么版本的ExtJS?

ExtJS 4.2.1中至少有两个已知的分组错误,分别在4.2.2(EXTJS-10027)和4.2.3(EXTJS-10043)中修复。

在您的Ext版本中(或通过简单升级)修复这些错误比为每个网格编写解决方法更容易。

如果这不能解决您的问题,并且您使用的是Ext4,请考虑滥用基础模型上的“转换”功能。我担心,这在ExtJS5中不再起作用,但暂时它是一个很好的临时解决方案。