日期:2014-05-16  浏览次数:20376 次

Ext JS 4.0 Tree实战(完美解决TreeNode动态刷新问题)
由于个人时间问题,且鉴于上次Grid实战发布经验,完整代码我就不放了,只发布有价值的代码片段。节省大家时间。

本文只描述技术要点:
1,上JSON
[{"pkid":177,"text":"1","mkljdz":"1","bj":1,"xh":1,"fjmk":"3","cjxgrq":"May 17, 2011 7:47:50 PM","zmks":0,"lb":"0","jz":"1","leaf":true},{"pkid":178,"text":"2","mkljdz":"2","bj":1,"xh":2,"fjmk":"3","cjxgrq":"May 17, 2011 7:48:07 PM","zmks":0,"lb":"0","jz":"2","leaf":true},{"pkid":179,"text":"3","mkljdz":"3","bj":1,"xh":3,"fjmk":"3","cjxgrq":"May 17, 2011 7:48:38 PM","zmks":0,"lb":"0","jz":"3","leaf":true},{"pkid":180,"text":"4","mkljdz":"4","bj":1,"xh":4,"fjmk":"3","cjxgrq":"May 17, 2011 7:49:37 PM","zmks":0,"lb":"0","jz":"4","leaf":true},{"pkid":181,"text":"5","mkljdz":"5","bj":1,"xh":5,"fjmk":"3","cjxgrq":"May 17, 2011 7:51:20 PM","zmks":0,"lb":"0","jz":"5","leaf":true}]

必要字段:pkid text fjmk leaf
说明:Tree的JSON是数组格式的,pkid的值是节点的id、text的值是节点的名字、fjmk的值为父级模块的pkid、leaf表示是否为leaf节点。

2,技术要点
很多朋友不知道4的树节点视图如何动态更新,上核心代码段
listeners : {
itemclick : function(view, rec, node) {//树节点单击时候记录下view、record、node
View = view;
Rec = rec;
Node = node;
view.expand(rec);//单击展开子节点
}

//这段代码很关键,与ExtJS3刷新node的方法完全不一样
Rec.removeAll();//清空当前节点下的子节点
xtmkTreeStore.load({
node : Rec,//读取当前节点
callback : function() {
View.refresh();//刷新树视图!
}
});


最后,goodluck everyone!
1 楼 redish 2011-05-22  
和3.0有什么不同吗?
2 楼 cnyangqi 2011-05-22  
redish 写道
和3.0有什么不同吗?


3.0刷新node即可。
3 楼 erikchang 2011-05-22  
ext太重量级了,全部用它,你会发现噩梦正在发生...
4 楼 Java_大猫 2011-05-23  
erikchang 写道
ext太重量级了,全部用它,你会发现噩梦正在发生...

同意。曾经的一个项目就是。彻底杯具
5 楼 sebatinsky 2011-05-23  
呵呵,反正我用的一个是相当杯具。
6 楼 cnyangqi 2011-05-23  
erikchang 写道
ext太重量级了,全部用它,你会发现噩梦正在发生...

个人其实也对ExtJS。。。但决定不了什么。。。所以
7 楼 cnyangqi 2011-05-23  
Java_大猫 写道
erikchang 写道
ext太重量级了,全部用它,你会发现噩梦正在发生...

同意。曾经的一个项目就是。彻底杯具

广域网项目?
8 楼 cnyangqi 2011-05-23  
sebatinsky 写道
呵呵,反正我用的一个是相当杯具。

广域网项目?
9 楼 zgxzowen 2011-05-24  
JS是在是太灵活了,因此导致ext写出来的东西千差万别,借用我们架构师的话,用不好Ext将会导致项目工期等各方面都受影响,但是用的好,无论维护还有易用性上都能提高几个档次,不适用于公网项目,做企业级应用还是不错的选择,Ext的理论特别好,封装,继承,我们现在都用Ext的继承机制来实现业务,最开始感觉他很难用,不好写,api繁多,用时间长了,就会有自己的体会
10 楼 cnyangqi 2011-05-25  
zgxzowen 写道
JS是在是太灵活了,因此导致ext写出来的东西千差万别,借用我们架构师的话,用不好Ext将会导致项目工期等各方面都受影响,但是用的好,无论维护还有易用性上都能提高几个档次,不适用于公网项目,做企业级应用还是不错的选择,Ext的理论特别好,封装,继承,我们现在都用Ext的继承机制来实现业务,最开始感觉他很难用