easyui中combotree异步加载的一些问题

[b][size=medium]
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());
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值