`
yuanlg
  • 浏览: 77947 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

ext treegrid 异步加载

阅读更多


最近在做一个ext的项目,刚开时学ext,做一个树形显示列表,要求异步加载,在网上找了好久都没找到一个完整的例子,后来自己慢慢的研究终于搞出来了,js代码如下:

//定义树的加载器
var treeloader = new Ext.ux.tree.TreeGridLoader({
url : "listTreeXzqh.do"
});

//定义treegrid
var treeGrid = new Ext.ux.tree.TreeGrid({
title : '行政区划管理',
id : "xtgl005LT",
autoScroll : true,
autoHeight : true,
border : false,
animate : true,
enableDD : true,
rootVisible : false,
containerScroll : true,
columns : [ {
header : '行政区划名称',
dataIndex : 'xzqhmc',
width : 250
}, {
header : '行政区划代码',
dataIndex : 'xzqhdm',
width : 200
}, {
header : '行政区划简称',
dataIndex : 'xzqhjc',
width : 200
}, {
header : '行政区划级别',
dataIndex : 'xzqhjb',
width : 200,
renderer : function(n) {
if (n == '1') {
return "省、自治区";
} else if (n == '2') {
return "市、州";
} else if (n == '3') {
return "县";
} else if (n == '4') {
return "乡镇";
} else if (n == '5') {
return "村";
}
}
}, {
header : '乡镇类型',
hidden : true,
dataIndex : 'xzlx'
} ],
loader : treeloader
//绑定加载器
});

// 异步加载根节点
var rootnode = new Ext.tree.AsyncTreeNode({
id : '0',
text : '中华人民共和国行政区划代码',
draggable : false,// 根节点不容许拖动
expanded : true
});
//设置节点属性
rootnode.attributes = {
xzqhjb : '0',
xzqhdm : '0'
};

// 为tree设置根节点
treeGrid.setRootNode(rootnode);

// 响应加载前事件,传递node参数
treeGrid.on('beforeload', function(node) {
var xzqhjb = xzqhjb = node.attributes["xzqhjb"];
var xzqhdm = node.attributes["xzqhdm"];
treeGrid.loader.dataUrl = "./xtgl/listTreeXzqh.do?xzqhjb=" + xzqhjb
+ "&xzqhdm=" + xzqhdm; // 定义子节点的Loader
}, treeloader);

每次点击节点都会到后台查询子节点 后台返回的json数据为:
[{xzqhdm:'110000000000',xzqhmc:'北京市',xzqhjc:'北京市',xzqhjb:'1',xzqhjbmc:'',leaf:false},{xzqhdm:'120000000000',xzqhmc:'天津市',xzqhjc:'天津市',xzqhjb:'1',xzqhjbmc:'',leaf:false},{xzqhdm:'130000000000',xzqhmc:'河北省',xzqhjc:'河北省',xzqhjb:'1',xzqhjbmc:'',leaf:false},{xzqhdm:'140000000000',xzqhmc:'山西省',xzqhjc:'山西省',xzqhjb:'1',xzqhjbmc:'',leaf:false},{xzqhdm:'150000000000',xzqhmc:'内蒙古自治区',xzqhjc:'内蒙古自治区',xzqhjb:'1',xzqhjbmc:'',leaf:false}]
效果图:

图见附件
  • 大小: 9.9 KB
分享到:
评论
10 楼 javams 2012-09-04  
9 楼 血战长空 2012-06-07  
你好,我按照你所讲的内容,基于ExtJs3.4做了一个实例。发现在执行:
treeGrid.setRootNode(rootnode); 

时,会报出“this.ui不是对象”的错误。

请问,你遇到过这个问题吗?
8 楼 zercle 2012-05-25  
    
非常感谢,弄了一天,treegrid加载远程JSON数据都没有成功!
看了这篇文章就弄出来了
7 楼 zmy305922445 2012-04-18  
本人工作需要你提供的树,请发到我邮箱里:305922445@163.com ,谢谢呀
6 楼 zz894571429 2012-04-01  
能给一份源码给我吗。894571429@qq.com,工作需要
5 楼 xiaoxiesay 2011-12-08  
lxplxp 写道
想使用但是报错了!!!不能用啊!!!,请贴出源码和附件!谢谢!
自己懂了要分享!谢谢!

4 楼 callo 2011-11-11  
lz,本人工作需要像你这样的树,可以把你那异步加载树的treegrid源码给我吗?万分感谢啦!邮箱:502268897@qq.com
3 楼 lxplxp 2011-10-24  
第一次传过来什么数据呢???最好将实体类和Action类贴出来,谢谢
2 楼 lxplxp 2011-10-24  
想使用但是报错了!!!不能用啊!!!,请贴出源码和附件!谢谢!
自己懂了要分享!谢谢!
1 楼 longwenbin2008 2011-05-12  
哥们,看到你的treeGrid异步加载的文章,我按照你给的js实现,老暴异常,你能把你的实现的js代码完整的贴发一份给我吗?邮箱:libertyawing@gmail.com

相关推荐

Global site tag (gtag.js) - Google Analytics