zTree异步加载传参 treeNode.id取不到值
ztree吧
全部回复
仅看楼主
level 3
jinjin0903 楼主

业务逻辑需要,加载树子目录时需要两个参数一个是当前节点id,一个是当前jsp页面一变量数据
async: {
enable: true,
url:"grantLoadNodes.action",
autoParam:["id"]//这样传参后台request.getParameter("id")可取到要加载的节点id
},
参照页面取值
http://www.iteye.com/topic/1114544?page=9#2312170 <%=clientId%>
url:"../asyncData/getNodes.jsp?clientId=<%=clientId%>&clientName=<%=clientName%>",
otherParam:{"otherParam":"zTreeAsyncTest","clientName1":"<%=clientName"%>"},
<%=clientId%>页面无法编译通过
参照API分批异步加载大数据量 用getUrl传参
http://www.oschina.net/question/60049_36789
async: {
enable: true,
url:getNodeUrl
},
data: {
simpleData: {
enable: true
}
}
function getNodeUrl(treeId, treeNode){
var nodeId = $("#objId").val();
return "grantLoadNodes.action?id="+treeNode.id+"&nodeId="+nodeId;
}
treeNode.id 取不到值,整个树都不加载了
[{id:1, name:"综合部",type:2,isParent:true,"nocheck":true},{id:2, name:"技术部",type:2,isParent:true,"nocheck":true}]
没有open:true属性
我发表过求助帖子找不到,怕您看不到,已查解决办法无果,求助大侠麻烦您了,谢谢。

2012年10月08日 03点10分 1
level 11
1、你用了简单数据模式,为何有 id 木有 pId 属性?
2、如果不是1的原因导致,请检查你的页面是否有哪里出现了js错误导致整棵树都不加载的
2012年10月08日 13点10分 2
level 3
jinjin0903 楼主
问题已解决,跟simpleData无关,我在节点数据来源zNodes里加了pId,alert(treeNode.id)依旧无值弹出,后面不执行。
刚才才理清,最开始加载树的时候就需异步加载从后台取数据,第一次加载时是没有节点treeNode的,所以取不到treeNode.id。
function getNodeUrl(treeId, treeNode){
var t = $.fn.zTree.getZTreeObj(treeId);
var nodes = t.getNodes();
var nodeId = $("#objId").val();
if(nodes.length==0){
return "grantLoadNodes.action?nodeId="+nodeId;
}else{
return "grantLoadNodes.action?id="+treeNode.id+"&nodeId="+nodeId;
}
}
谢谢zTreeAPI
2012年10月09日 02点10分 3
这个呀,我也没有太仔细看代码。。。关于 url function 中 treeNode 的说明在 API 中也是有说明的 “针对根进行异步加载时,treeNode = null”
2012年10月09日 12点10分
回复 zTreeAPI :嗯,怪我自个API没看全面。针对根进行异步加载时,treeNode = null,那我直接判断treeNode是否为空,不用取当前树节点数量再做判断了。 之前只看API的setting ,zTree,zTreeObj,treeNode的使用说明觉得使用有局限,参照Demo 演示后,之前以为达不到的功能也完美的实现了,衷心感谢。
2012年10月10日 08点10分
回复 zTreeAPI :您辛苦写的使用说明和例子很受用 膜拜[真棒]
2012年10月10日 08点10分
回复 jinjin0903 : 呵呵,膜拜不用了,能帮上忙我就高兴啦
2012年10月12日 07点10分
1