一些关于对节点的drag操作的问题。
ztree吧
全部回复
仅看楼主
level 9
zx75991 楼主
我们需要做这样一个功能,首先展开一颗或几棵树。
数据从数据库中读取,并拼接成相应的json格式,然后,通过zTree生成,这个已经做到了。
然后,子节点或者父节点有可能根据实际的需求有变动,需要手动拖动节点来改变,可能父节点或者相关的子节点在拖动后都会由变化。
我需要怎样设置相应的方法,在那里设置,读取节点的什么属性,或者整棵树的json数据也行。
2012年05月03日 04点05分 1
level 9
zx75991 楼主
现在我在callback里面添加onDrop:function()
{
var Mytree=$.fn.zTree.getZtreeOBJ("tree");
var Nodes=Mytree.getNodes();
var act=Mytree.transformToArray(Nodes);
alert(act);
}
这样取得的数据都是[object object]这样的。
2012年05月03日 06点05分 2
level 11
json 对象的类型就是 object 呀,如果你需要string 的话,那么需要自己去拼接
2012年05月03日 09点05分 3
level 9
zx75991 楼主
我在目录树上进行拖拽操作后,需要取得这颗新树的相关数据,通过ajax返回处理后,在重新刷新树。要怎么做才合适?
2012年05月03日 09点05分 4
level 9
zx75991 楼主
或者说,可以把这个数组直接post到处理页面再解析?
2012年05月03日 09点05分 5
level 11
1、每次拖拽后再刷新树貌似不利于性能优化,而且打开的节点又会重新关闭没有必要
2、每次拖拽后,只需要把当前移动的节点信息传递给后台进行处理即可
3、如果为了避免后台失败 而导致的前后台数据不一直,那么可以利用 beforeDrop 将拖拽结果发送给后台,同时return false; 等后台结果收到后利用 moveNode 方法来实现拖拽结果。
4、传递信息尽可能简洁,没必要整个对象传给后台。一般来说只传id 即可,当然实际操作需要看你的具体需求
2012年05月03日 10点05分 6
level 9
zx75991 楼主
好的,我这样去做,有问题再请教你,谢谢啊!
2012年05月03日 10点05分 7
level 9
zx75991 楼主
还有个问题,我选择某个节点拖拽后,如何得到这个节点拖拽后的具体信息,比如这个节点的key,value,parentid这样几个。
2012年05月06日 02点05分 8
level 9
zx75991 楼主
怎样拼接那个selectNode的数据?
2012年05月06日 02点05分 9
level 9
zx75991 楼主
我需要在树初始化的时候设置什么属性,然后在拖拽后能得到它
2012年05月06日 02点05分 10
level 11
1、在 beforeDrop、onDrop 这样的 callback 中会返回 节点数据对象(详细请看 API 文档)
2、节点数据对象 JSON 获取属性很简单,就是类似于 treeNode.name 这样既可
3、拼接字符串只需要返回你后台需要得到的字符串格式即可
2012年05月06日 12点05分 11
level 9
zx75991 楼主
我定义的树的json是按照demo做的修改
{id:1,pid:0,name:"ffff",open:true},{id:101,pid:1;name:"dsdds",url:"#"}这样的结构赋给树的
在setting中未做修改
onDrop:function(treeId,treeNode)
{
var MyTree=$.fn.zTree.getZTreeObj("tree");
var Nodes=MyTree.getSelectedNodes();
for(var item in Nodes)
{
alert(item);
}
这样出来的值是0
如果取treeId以及treeNode显示为 undefined
2012年05月06日 13点05分 12
level 9
zx75991 楼主
哦 这个Json已经解析出来了,很长的一串东西,需要把有用的取出来就行。
这里没问题了。
谢谢你!
2012年05月06日 13点05分 13
level 11
[酷] 搞定就好
2012年05月06日 14点05分 14
level 1
能给我个例子吗?》或者给我给QQ交流下,我也想弄这个
2012年05月28日 12点05分 15
1