ztree数据库异步加载不能加载子孙节点
ztree吧
全部回复
仅看楼主
level 1
dongjch0915 楼主
本人学习ztree有几天了。对样例中前台直接给出树结构数据生成树理解实现无障碍,唯独从数据库异步调用不能很好的理解,所遇到问题也多出于此。请各位大神指点迷津,拜谢!
后台代码
@RequestMapping
public String tree(ActionContext context) throws Exception {
long parent_id = context.getParameterAsLong("pid", -1);
// 父节点ID
List<ZTreeNode> treeNodeList = new ArrayList<ZTreeNode>();
if (parent_id == -1) { // 虚拟根节点
ZTreeNode root = ZTreeNode.getRootZTreeNode("业务图层", null, null, null, null,null, null);
treeNodeList.add(root);
}else {
treeNodeList = layerResourceService.listTreeNodes(parent_id);
}
return context.ajaxResult(treeNodeList);
}
方法说明:我的思路是先通过getRootZTreeNode生成root节点,以root节点的ID为pid逐层获取子节点。这样期望是在初始化时能够完成全部展开功能,并且在初始化后,点击单个节点也能实现点击节点的展开和关闭动作。上面的方法,我在debug时发现else部分不能执行,但是前后台都没有报错误信息。
另外一个思路是,我的listTreeNodes方法一次性将树表中所有内容全部取出,然后转成json格式传到前台,但是发现层次结构的数表不能被解析成预想的树结构,而是全部列成了一层。
//setting
var setting1 = {
check: {
enable: true,
autoCheckTrigger:true
},
async: {
enable:true,
url:"../../../xf/manage/LayerResource/tree.do",
autoParam:["id=pid"],
type:"post"
},
data:{
simpleData:{
enable:true,
idKey:"id",
pIdKey:"pid",
rootPId:-1
}
},
view: {
showIcon: false,
showLine: false
},
callback:{
beforeAsync: beforeAsync,
onAsyncSuccess: treeExpandAll1,
onAsyncError: onAsyncError,
onCheck: onCheck
}
};
2014年09月05日 02点09分 1
level 11
用 chrome 的调试工具检查代码, 检查数据传输情况
2014年09月22日 06点09分 2
1