Extjs学习总结之26treepanel异步加载

这一章重点还是理论多一些,而且是特别多,pdf不能拷贝,我也不想拷贝,我都是自己敲。这里字太多,我就敲了一点,如果大家有兴趣,就找李赞红老师的书看看吧。

 

Ext.onReady(function(){
 /**
  * 对于规模较大的项目其导航树非常复杂,如果数据特别多,也会导致树的级别或者结点很多,
  * 而很多时候,不一定要操作所有结点,用户只关心他们感兴趣的结点,因为我们可以做异步
  * 形成,点击某一个结点的时候,通过ajax从服务器拉去该结点的数据,而不是一次性将书的
  * 所有结点都遍历出来。
  */
 
 /**
  * treeNode不支持异步读取子结点,该操作由Ext.tree.AsyncTreeNode类来实现,
  * Ext.tree.AsyncTreeNode是TreeNode的子类,重写了部分方法,比如最关键的
  * expand方法,hasChildNodes()等等,asyncTreeNode的expand方法先将数据
  * 从服务器读出,再调用TreeNode的expand方法展开,异步读取结点是又他们两者共
  * 同合作完成的。
  */
 
 /**
  * 从服务器获取数据由Ext.tree.TreeLoader负责,该类通过ajax将数据从服务器中
  * 取回,创建爱你新结点作为子节点。Ext.tree.TreeLoader只支持Json对象,不支
  * 数组或者XML。如果要支持他们,必须对该类进行重写,但是JSON格式确实是一种容易
  * 理解并且高效的格式,如果没有什么特别的要求,最好还是不要改吧。
  */
 
 /**
  * 注意下面几个问题:
  * 1、所有的结点必须定义一个唯一的ID,因为TreeLoader发请求时会传送一个名为node
  * 的参数,该参数正式异步结点的ID 并根据id读取该结点下的所有子结点
  * 2、必须明确声明结点的类型,如果结点为叶子结点,leaf设置为true,如果为非叶子结点
  * leaf设置为false。
  * 3、如果结点由数据库管理和维护,最最好设计一个能满足要求的表结构。
  */
 
 /**
  * 异步加载解析
  * 一棵树至少要提供一个根结点,其他结点都可以异步加载生成,根结点应该是AsyncTreeNode
  * 类型的结点,这样才能从服务器获取数据,我们这样定义根结点。
  * var root = new Ext.tree.AsyncTreeNode({id:"1",text:"根结点",leaf:false});
  * 根结点的ID被设置为了1,text是根结点,leaf为false表示该结点还有子结点,即不是子结点。
  * 
  * TreePanel也有了不一样的配置,dataUrl选项是必须的配置,该选项指定返回子节点数据的服务器
  * 资源,本例是servlet组件。
  * var tree = new Ext.tree.TreePanel({
  *   title:"异步加载结点",
  *   width:300,
  *   height:300,
  *   dataUrl:"../../../syncTreeServlet"
  * });
  * tree.setRootNode(root);
  * tree.render("a");
  */
 
});


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值