我有一个树形面板。树中的每个节点都有一个 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 返回记录节点的方法。
如果你想从另一个属性中获取节点,那么你需要使用 from 的tree
( Ext.data.Tree
) 属性store
,它就像一个节点管理器。nodeHash
这在属性中有一个节点记录数组。您需要迭代此 Array 并手动比较给定的属性。
完整代码:
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'));
}