+ -
当前位置:首页 → 问答吧 → 想利用dijit.tree实现一个动态加载的树 (dojo)

想利用dijit.tree实现一个动态加载的树 (dojo)

时间:2010-11-12

来源:互联网

以下是我的思路和目前的工作,如果有现成的例子也可以不管我的思路
数据库是这样的架构的
id name pid
1 a 0
2 b 0
3 c 0
4 a1 1
5 a2 1

达到效果:
我是想用dijit的tree实现这样的功能:页面开始的时候,截入a b c 三个节点,然后展开a节点的时候(dijit.tree的onopen事件),再动态地载入a1 a2 节点,加在a下面,

我目前做到的:
我生成a b c三个节点时候的json格式是这样的(设这个json对象的名字为tree1)
{identifier:'ID',label:'Name',items:[{ID:"1",Name:"a",hasChild:[]},{ID:"2",Name:"b"},{ID:"3",Name:"c"}]}
应该是要把tree1改成
{identifier:'ID',label:'Name',items:[{ID:"1",Name:"a",hasChild:[{ID:"4",Name:"a1"},{ID:"5",Name:"a2"}]},{ID:"2",Name:"b"},{ID:"3",Name:"c"}]}就可以实现自动更新了
增加节点是可以用ItemFileWriteStore的newItem方法,但这种方法只是一个一个地添加,效率太低了

我的思路是把下面的json(名字为tree2)
{identifier:'ID',label:'Name',items:[{ID:"4",Name:"a1"},{ID:"5",Name:"a2"}]}里面的items对象直接放进tree1的hasChild里面就好了,因为一个节点的子节点可能有很多,这样批量操作效果应该会比较好,但我看了dojo的api很久了,始终找不到一个适合的操作函数,不知道有无人指点迷津?或者直接给个现成的例子,不需要按照我的思路也可。


另外打完这篇文字后发现pasteItem()这个函数貌似可以完成我的想法????反正现在思维比较乱,有很多想法但都没达到效果。。。

作者: p2227   发布时间: 2010-11-12

一个一个地添加,效率太低

不一定把!
你看看它的ipa,你给他一个集合,他应该(我个人直觉,没用过这个东东)也是循环这个集合,一个一个处理的!

作者: hch126163   发布时间: 2010-11-12

热门下载

更多