プログラムで展開するツリーパネルがあります。
ノードを展開するときに、このノードに「ジャンプ」したいのですが、スクロールすることを意味します。
ツリー パネルを特定のノードにスクロールする方法は?
更新:Ext 4.1を使用しています
http://docs.sencha.com/ext-js/4-0/#!/api/Ext.tree.Panel-method-selectPathを使用してみてくださいselectPath()
extjs 3.x では、TreeNodeUI (myNode.ui.focus()) で focus() を呼び出すことができます。
tree.getView().focusRow()
次のように使用できます。
tree.expandPath(
'/root/1/2/3',
'id',
'/',
function() {
tree.getView().focusRow(tree.getStore().getNodeById('3'));
}
});
ただし、ツリーがanimate: true
すべてのノードを非同期に使用およびロードし、パス内のノードがまだロードされていない場合、このアプローチは機能しません (複数のレイアウト更新のため、ツリーは選択されたノードにスクロールされません)。
回避策として、次のことができます。
animate: false
ツリーに設定します。次のように、「afterlayout」リスナーを追加します。
tree.on('afterlayout', function() {
tree.getView().focusRow(tree.getSelectionModel().getSelection()[0]);
}
必要に応じてこのハンドラーを追加し、すべてが完了したら削除できると思います。