我有两个ExtJs TreePanel。一棵树满载(称之为FLTree),第二棵树部分加载(称之为PL树)。当用户点击满载树中的节点时该节点存在于部分加载的树中,我想在部分加载的树中触发该节点的checkchange事件。
这可能吗?
答案 0 :(得分:0)
是的,Ext.tree.Panel
具有itemclick
事件,当单击某个项目时会触发该事件(您需要将其添加到控制器或treepanel的listeners属性中)。
属性为:
someFunctionName: function(treeview, record, item, index, e, eOpts) { ... }
从记录变量中,您可以从第一个树的所选节点获取所需的数据。
要查找其他树状图,您可以在树视图中使用up()
和down()
方法:
var parentContainer = treeview.up('container_xtype[someProperty1=someValue1]');
你可以走在组件层次结构中(获取包含 treepanels的父容器)。
var pLtree = parentContainer.down('treepanel[someProperty2=someValue2]');
如果两个treepanel没有公共父级,那么您可以使用
var pLtree = Ext.ComponentQuery.query('treepanel[someProperty2=someValue2]')[0];
全局方法返回匹配组件的数组。 但是确保您使用了一个好的组件选择器查询(您可以检查返回的数组的长度是否== 1)。
最后,您需要使用HERE所述的pLtree.fireEvent('checkchange', ...);
。