The tree dynamically loads data in easyui (springmvc+hibernate)

Code in Js:
$("#tt").tree({
url:getRealPath()+'/UserManagement/findFunctionAuthority',
// date: date,
checkbox: true,
animate: true,
cascadeCheck:true,
onLoadSuccess:function (){ //Trigger the method after the data is loaded successfully
$("#tt").tree('expandAll');//Expand all nodes

},
onExpand : function () { //Trigger the method when the node is expanded
var FunctionAuthority = '';
$.ajax({
type: "post",
url: getRealPath()+'/UserManagement/getAuthority/'+userNo,
async: false,//false is asynchronous transmission, and only global variables can be passed through asynchronous transmission
success: function (data) {
FunctionAuthority = data;
},
error: function () {
alert("error");
}
});
//tree assigns the initial value, that is, selects the existing permissions in the database
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');//展开所有节点
},
效果如下图:

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324814813&siteId=291194637