1

私はツリーパネルを持っています。ツリーの各ノードには ID が与えられます。ボタンをクリックすると、ノード 2.1 の checkchange イベントを発生させたいと考えています (以下のツリーを参照)。ボタンのクリック時にノードの ID を使用してノードの checkchange イベントを発生させるにはどうすればよいですか。

  1 
      1.2
      1.3
      1.4
  2
       2.1
       2.2
  3

ありがとうございました

4

1 に答える 1

2

checkchange を起動するには、ノードが必要であり、チェックされているかどうかが必要です。

はノード情報を保存するためにTreePanel使用されます (プロパティにあります)。Ext.data.TreeStorestore

この 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'));
}
于 2013-08-26T15:28:48.320 に答える