想利用dijit.tree实现一个动态加载的树 (dojo)
p2227 2010-11-12 02:56:40 以下是我的思路和目前的工作,如果有现成的例子也可以不管我的思路
数据库是这样的架构的
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()这个函数貌似可以完成我的想法????反正现在思维比较乱,有很多想法但都没达到效果。。。