随笔 - 1357  文章 - 0  评论 - 1104  阅读 - 1941万

树TreePanel

概要

1、TreePanel简介
2、树节点
3、同步树
4、异步树
5、树加载器
              

1、树控件的简单应用

树控件由Ext.tree.TreePanel类定义,控件的名称为treepanel,TreePanel类继承自Panel面板。在ExtJS中使用树控件其实非常简单,我们先来看下面的代码:

复制代码
<script type="text/javascript">
Ext.onReady(
function(){
var root=new Ext.tree.TreeNode({
id:
"root",
text:
"树的根"
});

root.appendChild(
new Ext.tree.TreeNode({
id:
"c1",
text:
"子节点"
})
);

var tree=new Ext.tree.TreePanel({
renderTo: Ext.getBody(),
root:root,
width:
100
});

});
</script>
复制代码
运行结果如下:
2、树节点Ext.tree.TreeNode

TreeNode代表一个树节点,比较常用的属性包括text、id、icon、checked等。

3、异步树Ext.tree.AsyncTreeNode

在很多时候,树的节点是动态产生的,也就是需要从服务器端的一个url中获得树的节点信息。ExtJS的树控件提供了对这种功能的支持,你只需要在创建树控件的时候,通过给树指定一个节点加载器,就可以从服务器端动态加载树的节点信息。我们来看下面的代码:

复制代码
<script type="text/javascript">
Ext.onReady(
function(){
var root=new Ext.tree.AsyncTreeNode({
id:
"root",
text:
"树的根"
});

var tree=new Ext.tree.TreePanel({
renderTo: Ext.getBody(),
root: root,
loader:
new Ext.tree.TreeLoader({url: "treedata.js" }),
width:
150
});

});
</script>
复制代码
              

treedata.js这个url返回的内容如下:

复制代码
[{
id:
1,
text:
'子节点1',
leaf:
true
},{
id:
2,
text:
'儿子节点2',
children: [{
id:
3,
text:
'孙子节点',
leaf:
true
}]
}]
复制代码

4、树加载器Ext.tree.TreeLoader

凡是异步树节点,都需指定一个树加载器,TreeLoader会根据需要,通过Ajax的方式自动从指定的url或内存中加载树节点信息。

可以在准备加载一个树节点之前,更改TreeLoader的相关信息,示例:

myTreeLoader.on("beforeload", function(treeLoader, node) {this.baseParams.category = node.attributes.category;}, this);

posted on   Ruthless  阅读(2588)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
< 2011年6月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9

点击右上角即可分享
微信分享提示