我正在使用分组网格,其中包含一个校验列。我需要控制复选框的选择,即允许或不允许选择。我使用了前校验更改函数来完成这个任务。为了解释这个问题,请考虑这个场景。有五个组,每个组包含3行,其中只有最后一个组是展开的。如果选择最后一行检查列,则返回的rowIndex为2,因为只有3行是可见的。返回虚拟或可见行索引的如何知道/获取实际行索引,而不需要展开所有组。
我的商业要求要求我知道准确的行索引才能从商店获得记录。复选列由存储区的数据/记录映射,允许我决定允许复选框上的复选框。另外,从较低的组选中一个,然后从更高的水平复选框也需要检查。
我使用的是ExtJS 5.x.x框架。
我已经检查了树状网格中存在的同样问题。
提前感谢你。
发布于 2014-10-21 04:48:41
我相信这会解决你的问题:
// 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);
}
}发布于 2014-10-17 06:37:53
您使用的是什么版本的ExtJS?
在ExtJS 4.2.1中至少有两个已知的分组错误,分别在4.2.2 (EXTJS-10027)和4.2.3 (EXTJS-10043)中修复。
在您的Ext版本中修复这些bug(或者仅仅通过升级)要比为每个网格编写解决方案要容易。
如果这不能解决您的问题,而且您正在使用Ext4,请考虑滥用底层模型上的“转换”函数。我担心这在ExtJS5中不再起作用,但就目前而言,这是一个很好的临时解决方案。
https://stackoverflow.com/questions/26409511
复制相似问题