0

在 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);
            }
        });
}
4

2 回答 2

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);
}
于 2015-01-07T15:45:35.437 回答
0

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

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

于 2013-10-02T19:14:16.547 回答