私はツリーパネルを持っています。ツリーの各ノードには ID が与えられます。ボタンをクリックすると、ノード 2.1 の checkchange イベントを発生させたいと考えています (以下のツリーを参照)。ボタンのクリック時にノードの ID を使用してノードの checkchange イベントを発生させるにはどうすればよいですか。
1
1.2
1.3
1.4
2
2.1
2.2
3
ありがとうございました
私はツリーパネルを持っています。ツリーの各ノードには ID が与えられます。ボタンをクリックすると、ノード 2.1 の checkchange イベントを発生させたいと考えています (以下のツリーを参照)。ボタンのクリック時にノードの ID を使用してノードの checkchange イベントを発生させるにはどうすればよいですか。
1
1.2
1.3
1.4
2
2.1
2.2
3
ありがとうございました
checkchange を起動するには、ノードが必要であり、チェックされているかどうかが必要です。
はノード情報を保存するためにTreePanel
使用されます (プロパティにあります)。Ext.data.TreeStore
store
この TreeStore には、getNodeById( id )
id でレコード ノードを返すメソッドがあります。
別のプロパティからノードを取得する場合は、ノード マネージャのようなからtree
( Ext.data.Tree
) プロパティを使用する必要があります。store
これは、nodeHash
プロパティにノード レコード配列を持ちます。この配列を反復し、指定されたプロパティを手動で比較する必要があります。
完全なコード:
buttonClick: function(button, e, eOpts) {
var treepanel = button.up(...).down('treepanel');
var node = treepanel.getStore().getNodeById(yourIDHere);
// for custom property use this:
/*var nodeHash = treepanel.getStore().tree.nodeHash;
var node;
for (var x in nodeHash) {
if (nodeHash[x].get('customProperty') == customValue) {
node = nodeHash[x];
break;
}
} */
treepanel.fireEvent('checkchange', node, node.get('checked'));
}