ExtJS TreeStore 多根节点实现方法
在 Ext.data.TreeStore 中,根节点只能是一个,无法直接设置多个根节点。但是可以通过设置一个虚拟的根节点来实现多个根节点的效果。
具体做法是:
-
创建一个空的根节点,然后将所有要显示的根节点作为其子节点添加进去。
-
将创建好的根节点设置为 TreePanel 的根节点。
示例代码如下:
// 创建虚拟根节点
var root = {
'text': 'root',
'expanded': true,
'children': [
{'text': 'node1', 'leaf': true},
{'text': 'node2', 'leaf': true},
{'text': 'node3', 'leaf': true}
]
};
// 创建 TreeStore,并将虚拟根节点设置为根节点
var store = Ext.create('Ext.data.TreeStore', {
'root': root
});
// 创建 TreePanel,并将虚拟根节点设置为根节点
var tree = Ext.create('Ext.tree.Panel', {
'store': store,
'rootVisible': false, // 隐藏虚拟根节点
'renderTo': Ext.getBody()
});
上述代码中,创建了一个名为“root”的虚拟根节点,并将三个子节点添加进去。然后将虚拟根节点设置为 TreeStore 和 TreePanel 的根节点,最后将 TreePanel 渲染到页面中。由于设置了“rootVisible: false”,所以虚拟根节点不会在 TreePanel 中显示出来,只有子节点才会显示。
原文地址: https://www.cveoy.top/t/topic/mkP5 著作权归作者所有。请勿转载和采集!