欢迎访问中国最大的EXTJS讨论社区 首页 论坛 教程

Ext教程-一起Ext

当前位置: 首页 > 教程 > Ext Data Store >

Ext.data专题十(三):DWR与EXT整合DWRTreeLoader

时间:2009-04-13 23:00来源: 作者: 点击:
我们现在来尝试一下让树形也支持 DWR 。有了前面的基础,整合 DWR 和 tree 就更简单了。在后台,我们需要树形节点对应的 TreeNode.java 。目前,只要 id 、 text 和 leaf 三项就可以了。 publ

  

我们现在来尝试一下让树形也支持DWR。有了前面的基础,整合DWRtree就更简单了。在后台,我们需要树形节点对应的TreeNode.java。目前,只要idtextleaf三项就可以了。

 

public class TreeNode {

    String id;

    String text;

    boolean leaf;

}

 

id是节点的唯一标记,知道了id就能知道是在触发哪个节点了。text是显示的标题,leaf比较重要,它用来标记这个节点是不是叶子。

这里还是用异步树,TreeNodeManager.java里的getTree()方法将获得一个节点的id作为参数,然后返回这个节点下的所有子节点。我们这里没有限制生成的树形的深度,你可以根据自己的需要进行设置。TreeNodeManager.java的代码如下所示。

 

public List getTree(String id) {

    List list = new ArrayList();

    String seed1 = id + 1;

    String seed2 = id + 2;

    String seed3 = id + 3;

    list.add(new TreeNode(seed1, "" + seed1, false));

    list.add(new TreeNode(seed2, "" + seed2, false));

    list.add(new TreeNode(seed3, "" + seed3, true));

 

    return list;

}

 

上面的代码并不复杂,它实现的效果与在Java中使用List或数组是相同的,因为返回给前台的数据都是JSON格式的。前台使用JavaScript处理返回信息的部分更简单,先引入DWRTree- Loader.js,然后把TreeLoader替换成DWRTreeLoder即可,如下面的代码所示。

 

var tree = new Ext.tree.TreePanel('tree', {

    loader: new Ext.tree.DWRTreeLoader({dataUrl: treeNodeManager.getTree})

});

 

参数依然是dataUrl,它的值treeNodeManager.getTree代表的是一个DWR函数,我们不需要对它进行深入研究,它的内部会自动处理数据之间的对应关系。DWR有时真的很方便。

声明:本站教程文章版权为一起Ext(http://www.17ext.com/)所有,转载请注明出处
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容