easyui 中tree 动态加载数据(springmvc+hibernate)

Js中代码:
$("#tt").tree({
url:getRealPath()+'/UserManagement/findFunctionAuthority',
//data: data,
checkbox: true,
animate: true,
cascadeCheck:true,
onLoadSuccess:function (){ //在数据加载成功以后触发方法
$("#tt").tree('expandAll');//展开所有节点

},
onExpand : function () { //在节点展开的时候触发方法
var FunctionAuthority = '';
$.ajax({
type: "post",
url: getRealPath()+'/UserManagement/getAuthority/'+userNo,
async: false,//false为异步传输,异步传输才能传全局变量
success: function (data) {
FunctionAuthority = data;
},
error: function () {
alert("error");
}
});
//tree赋初值,即将数据库中已有的权限选中
if (FunctionAuthority !== "") {
//var TreeID = new Array();
var TreeID = FunctionAuthority.split(",");
for (var i = 0; i < TreeID.length; i++) {
var node = $('#tt').tree('find', TreeID[i]);
$('#tt').tree('check', node.target);
}
}
}
});

controllor,service,省略。(从dao层一层一层引用)
dao层的代码如下:

public List<Lsgnbh> findFunctionAuthority(String menuNo){
Session session = null;
Transaction ts = null;
List<Lsgnbh> lsgnbhlist = null;
if(menuNo == null)
menuNo = "0";
try {
session = getSession();
ts = session.beginTransaction();
Query query = session.createQuery("from Lsgnbh where tid = ?");
//?是通配符,通过query.setParameter来赋值。
query.setParameter(0,menuNo);
//0表示第一个占位符,同理1表示第二个。。。
lsgnbhlist = query.list();
ts.commit();
}catch (Exception e){

e.printStackTrace();
ts.rollback();
return null;
}finally {
close(session);
return lsgnbhlist;
}

知识点:
1、参数menuNo不需要从前端获得,是控件自己取得权限编号。
2、tree默认是全部折叠的,需要自己点击,如下图:

3、如果需要tree的节点全部展开,添加expandAll方法,注意:此方法要在所有数据加载成功以后触发,否则无效。代码为:
onLoadSuccess:function (){ //在数据加载成功以后触发方法
$("#tt").tree('expandAll');//展开所有节点
},
效果如下图:

猜你喜欢

转载自blog.csdn.net/lyh1994123/article/details/80054416