ExtJS 4.2.x如何找到所选网格行所在的组?

时间:2013-10-02 17:53:53

标签: extjs grid

在ExtJS 4.2.x中,我有一个分组网格。当我重新加载数据时,我尝试重新选择之前选择的行。但如果有多个组,我也会崩溃所有组。所以,现在我有一个选定的行,但它被隐藏,因为该组已折叠。我想扩展该行所在的组。

如何找到所选行所属的组?

我想避免使用CSS类来确定父组的任何解决方案,因为这些在ExtJS主要版本上会发生变化。

编辑: 我没有对此进行测试,因为我发现其他开发人员改变了其他内容并且我的问题不再存在。但作为一项智力活动......这似乎是一个不错的解决方案。许多记录可能表现不佳。并且使用forEach,一旦找到正确的组,就没有办法使检查短路。

那里有更好的(性能更好的)解决方案吗?

// where this = store
if (this.isGrouped()) {
    var groups = this.getGroups();
    Ext.Array.forEach(groups, function (item, index, allGroups) {
            if (Ext.Array.contains(item.children, record)) {
                grid.getFeature('grouping').expand(item.name);
            }
        });
}

2 个答案:

答案 0 :(得分:0)

您尝试使用Ext.ComponentQuery了吗?这取决于组件的xtype属性。这比依赖CSS选择器要好得多,而且它也更强大,因为它利用了Ext组件架构。

我不能给你代码,我还在学习extjs。

答案 1 :(得分:0)

使用组字段数据来扩展组。我有一个按字段年份分组的商店。

// where this = store
// node = selected row in data store 
// my group field is year
if (this.isGrouped()) {
    var group = psGrid.getView().getFeature('grouping');
    group.expand(node.data.year);
}