ztree的pid如何获取最准确了
@zTree 你好,想跟你请教个问题:
我看ztree demo上addHoverDom里获取pid = treeNode.id。但是我数据库里的id主键是自增的,中间有一部分数据被删除掉了,所以从21到71之间是没有数据的,因此,当连续添加新的节点时,会出现的情况是:
第一个添加的节点数据是正确的,即,id=71,parent(pid)= 16,但是第二个就开始不对了:id=72,parent(pid)=22,通过上述方法pid= treeNode.id取出来的pid居然是22,但数据库里并没有22这个id值,请问应该用什么方法得到的pid最准确呢。
数据表如下(parent即pid):
addHoverDom函数的代码如下:
function addHoverDom(treeId, treeNode) { var sObj = $("#" + treeNode.tId + "_span"); if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return; var addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='add node' onfocus='this.blur();'></span>"; sObj.after(addStr); var btn = $("#addBtn_"+treeNode.tId); if (btn) btn.bind("click", function(){ var zTree = $.fn.zTree.getZTreeObj("treeDemo"); //zTree.addNodes(treeNode, {id: newCount, pId:treeNode.id, name:"new node"}); var pId = treeNode.id; //var id = zNodes.length + newCount; var name = "new node"; var level = treeNode.level + 2 ; var url = "AddNode"; var data = {}; //data['id'] = id; data['name'] = name; data['pId'] = pId; data['level'] = level; $.ajax({ type:"POST", url:url, data:data, success: function(msg){ alert("节点名称添加成功"); } }); zTree.addNodes(treeNode, {id: (zNodes.length + newCount), pId:treeNode.id, name:"new node"}); return false; }); };
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
引用来自“zTree”的评论
1. zTree 绝对不会自行修改 id 的值,只会在使用简单数据模式下修正 pId 的值
2. id: (zNodes.length + newCount) 你的代码中新节点的 id 是这么计算出来的, 这本身就有问题吧?
1. zTree 绝对不会自行修改 id 的值,只会在使用简单数据模式下修正 pId 的值
2. id: (zNodes.length + newCount) 你的代码中新节点的 id 是这么计算出来的, 这本身就有问题吧?
再提醒你一下 zTree.addNodes 应该在最后调用,明白不?
恩,知道了,非常感谢!继续学习ing。有问题请不吝赐教啊。
回复
请教你一个问题,我看了你的代码,其中有一段:zTree.addNodes(treeNode, {id : data, pId : treeNode.id, name : addName}); 这里面id:data,这个data不是所有返回的数据么?这样赋给id起什么作用? 另外:之前给oderIds的赋值又有什么用呢?
回复
大哥,data数据是自定义的,可以是任何数据,你纠结啥呢,排序和名称存库了,返回的是数据库主键ID,Node节点的ID是需要自己生成控制的,不然哪来的你上面的问题?
回复
恩恩,自定义了一下id的数据,就OK了!
参考下JfinalUIB的代码吧:
执行逻辑,点击新增按钮时,生成一个节点名称(任意),然后传到后台保存,后台返回数据库ID值,然后创建节点(此时父节点ID和本节点ID都有了,包括名称)
http://git.oschina.net/dongcb678/JfinalUIB/blob/master/JFinalUIB/WebContent/WEB-INF/view/platform/department/tree.html