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