关于新增节点接更新的疑问
ztree吧
全部回复
仅看楼主
level 1
付行你0X 楼主
我新增了一个节点
zTree1.addNodes(zTree1.getSelectedNode(), [{name:"自定义节点1"}]);
然后我在另一个页面去填写这个节点的其他字段信息例如url、code、address、name等,name更改成了“新增目录信息”;我用
zTree1.updateNode(zTree1.getSelectedNode(),true);
为什么不能改不了新增节点那个name值呢

2011年07月20日 08点07分 1
level 1
付行你0X 楼主
还有就是 如果我不点击某个节点,而是定位某个节点被选中 也就是
zTree1.selectNode({sp_name:"自定义节点1"});
我调用remove 和update都不能删除或更新这个节点(不起作用)
急需解决办法!!!!!!!!!!!!!!!!!![拜]
2011年07月20日 08点07分 2
level 11
先回答第一个问题 zTree1.updateNode(zTree1.getSelectedNode(),true);
你这句话本来就有问题,按照你前面的逻辑,这个选中的节点并不是当前新增的节点,而是新增的节点的父节点。 你需要更新这个子节点。如果updateNode自动将下面全部子孙节点更新的话,效率太低,而且一般情况下没有这个必要。 所以updateNode是只针对指定的节点进行更新显示。
2011年07月20日 10点07分 3
level 1
付行你0X 楼主
zTree1.addNodes(zTree1.getSelectedNode(), [{name:"自定义节点1"}]);
zTree1.selectNode({sp_name:"自定义节点1"});
我是这样一起用的,这不就表示现在的节点是新增的这个了吗?
而且我界面也用alert(zTree1.getSelectedNode().sp_name)打出来是“自定义节点1”了
2011年07月20日 10点07分 4
level 1
付行你0X 楼主
function addTreeNode() {
zTree1.addNodes(zTree1.getSelectedNode(), [{sp_name:"自定义节点1"}]);
zTree1.selectNode({sp_name:"自定义节点1"});
var node = zTree1.getSelectedNode();
document.getElementById("itemJsonStr").value=node;
var form0 = document.forms[0];
form0.action = "loadItem.action?editFlag=2";
form0.target="testiframe";
form0.submit();
}
2011年07月20日 10点07分 5
level 11
第二个问题:
zTree1.selectNode({sp_name:"自定义节点1"}); 这个是错误的!
因为你传给zTree进行操作的节点必须是zTree内部的节点数据,你这个数据是一个新的数据对象。 建议通过getNodeByParam等几个方法查找到你需要的数据,然后进行selectNode操作!
2011年07月20日 10点07分 6
level 1
付行你0X 楼主
好,我试试
2011年07月20日 10点07分 7
level 1
付行你0X 楼主
万分感谢,可以了;还怪自己api看的不全面,谢谢
function addTreeNode() {
zTree1.addNodes(zTree1.getSelectedNode(), [{sp_name:"自定义节点1"}]);
var newnode = zTree1.getNodeByParam("sp_name", "自定义节点1");
zTree1.selectNode(newnode);
alert(zTree1.getSelectedNode().sp_name)
var node = zTree1.getSelectedNode();
document.getElementById("itemJsonStr").value=node;
var form0 = document.forms[0];
form0.action = "loadItem.action?editFlag=2";
form0.target="testiframe";
form0.submit();
}
2011年07月20日 10点07分 8
level 11
zTree还是有自身的一些不完善。
v3.0中对于add或初始化的数据,zTree会强行clone后加入,以避免用户反复初始化造成的数据重复。 所以addNodes以后会返回数据,就是clone后的数据,以方便用户使用。
2011年07月20日 10点07分 9
level 1
付行你0X 楼主
嗯,继续关注中[Love]
2011年07月20日 10点07分 10
1