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

Ext.ComponentQueryを使ってみましたか? xtypeこれは、コンポーネントの属性に依存します。これは、CSS セレクターに依存するよりもはるかに優れており、Ext コンポーネント アーキテクチャを利用しているため、はるかに強力です。

コードを提供することはできません。私はまだ extjs を学んでいます。

于 2013-10-02T19:14:16.547 に答える