问题描述:想用EasyUI实现树结构,点击加号时,展开的子节点不正确。
问题解决: 展开第一层节点和展开其他子节点一样,可以调用一个方法。当前节点的id能自动传到后台。
效果图:
关键代码: 后台是SpringMVC+mybatis+Spring,控制层代码如下:
/**
* 加载子节点
* @param model
* @param pid
* @return
*/
@RequestMapping(value = "/getChildren")
@ResponseBody
public List<Menu> getChildren(Model model,HttpServletRequest request) {
//System.out.println("父节点ID="+id);
String id=request.getParameter("id");
if(id==null){
id="0";
}
List<Menu> data = menuService.getChildren(Integer.valueOf(id));
return data;
}
上述返回json类型的数据到前台,格式为:
[{"id":1,"text":"系统菜单","state":"closed",pid:0},
{"id":2,"text":"管理员","state":"open",pid:1},
{"id":3,"text":"数据字典","state":"open",pid:1}]
前台调用的方法:
html部分:
<ul id="tree_menu" class="easyui-tree" > </ul>
JS部分:
//初始化方法
$(function(){
//加载全部节点
$("#tree_menu").tree({
url: '<%=request.getContextPath() %>/manage/menu/getChildren',
animate:true,
lines:true,
onClick: function (node) {
//右侧跳转到指定页面
addTab(node.text,node.menuUrl);
}
});
});