easyui中combotree异步加载的一些问题
程序员文章站
2022-05-18 20:59:52
...
[b][size=medium]
1. 先是前台js请求
[/size][/b]
[b][size=medium]
2. 后台json
[/size][/b]
[b][size=medium]
3. 后台数据查询需要注意的是
[/size][/b]
1. 先是前台js请求
[/size][/b]
// 上级部门下拉列表
$('#department').combotree({
url : 'departmentMaintainAction!queryDepartmentTree.action',
valueField : 'id',
textField : 'text',
required : true,
editable : false,
onClick : function(node) {
if (node.attributes.url) {
insertTab(node);
}
},
//全部展开
onLoadSuccess : function(node, data) {
var t = $(this);
if (data) {
$(data).each(function(index, d) {
if (this.state == 'closed') {
t.tree('expandAll');
}
});
}
}
});
[b][size=medium]
2. 后台json
[/size][/b]
JSONArray jsonArrayIn = new JSONArray();
for (Department department : departmentList) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("id", department.getDptId());
jsonObject.put("text", department.getBmmc());
//[color=blue] 注意这里的state很重要,combotree就是根据state
// 的值来判断是否向后台再次请求子节点数据,
// 同时它还向后台传递了该节点的id值,作为后台查询依据[/color]
if(department.getIsLeaf().equals("0")){
jsonObject.put("state", "closed");
}else {
jsonObject.put("state", "open");
}
jsonArrayIn.put(jsonObject);
}
[b][size=medium]
3. 后台数据查询需要注意的是
[/size][/b]
//combotree自动返回的父节点id,这是关键
String id = request.getParameter("id");
if(id != null){
department.setDptId(id);
}
//这是dao中的处理
if(department.getDptId() == null){
sql.append("and parent_id is null order by seq asc");
query = this.getSession().createQuery(sql.toString());
}else{
sql.append("and parent_id = :parent_id order by seq asc");
query = this.getSession().createQuery(sql.toString());
query.setParameter("parent_id", department.getDptId());
}
推荐阅读
-
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
-
easyui的combobox中onLoadSuccess多次加载产生的问题
-
jquery异步加载链接URL内容并输出到指定元素中的方法
-
jquery异步加载链接URL内容并输出到指定元素中的方法
-
ASP.NET中AJAX的异步加载(Demo演示)
-
EasyUI Combotree 实现异步加载树节点
-
ASP.net中动态加载控件时一些问题的总结
-
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
-
easyui中combotree异步加载的一些问题
-
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)