easyui递归添加完所有的菜单及菜单所拥有的按钮,并根据数据库的值判断是否勾上
来源:互联网 发布:java毫秒转换成date 编辑:程序博客网 时间:2024/05/17 09:00
public @ResponseBody List<Menu> getAccess(HttpServletRequest request) {
List<Menu> lsM = buildRoleNavNodes(Integer.parseInt(request.getParameter("role_id")),Integer.parseInt(request.getParameter("pid")));
return lsM;
}
public List<Menu> buildRoleNavNodes(int roleId, int parentId) {
List<Menu> LsMenuTop = menuService.getListWithMenubutton(parentId);
List<Menu> lsMenu = new ArrayList<Menu>();
for (Menu me : LsMenuTop) {
List<Menu> lsChildren = buildRoleNavNodes(roleId,me.getId()); //递归添加完所有的菜单及菜单所拥有的按钮,并根据数据库的值判断是否勾上
RoleMenu rm = roleMenuService.getByMenuRoleId(roleId, me.getId());
if (rm != null && me.getState().equals("open"))
me.setChecked(true);
else
me.setChecked(false);
if (me.getMenuButtons().size() > 0) {
for (Menubutton mb : me.getMenuButtons()) {
Menu m = new Menu();
RoleMenubutton rmb = roleMenubuttonService
.getByMenubuttonRoleId(roleId, mb.getId());
if (rmb != null)
m.setChecked(true);
else
m.setChecked(false);
m.setId(mb.getId());
m.setIconcls(mb.getIconcls());
m.setText(mb.getText());
lsChildren.add(m);
}
}
lsMenu.add(new Menu(me.getId(), me.getPid(), me.getType(), me
.getText(), me.getUrl(), me.getState(),me.getIconcls(), me
.getCreatetime(), me.getUpdatetime(), me.getChecked(),
lsChildren));
}
return lsMenu;
}
<script type="text/javascript">
$(function(){
$('#HyqRoleMenuTree').tree({
cascadeCheck:true,
animate:true,
checkbox:true
});
/*
HYQMS.HyqRole.getMenuTree = function getMenuTree(role_id){
$.ajax({
url:'menu/access.do',
type:'post',
dataType:'JSON',
data:{
role_id:role_id,
},
success:function(data){
if (data.status) {
$('#HyqRoleMenuTree').tree('loadData',data.info);
}else{
$.messager.alert('Info', data.info);
}
}
});
}; */
/*重新载入菜单项选项树*/
HYQMS.HyqRole.getMenuTree = function getMenuTree(role_id){
$('#HyqRoleMenuTree').tree({
url: "menu/access.do?role_id="+role_id+"&pid=0",
onBeforeExpand:function(node,param){
$('#HyqRoleMenuTree').tree('options').url = "menu/access.do?role_id="+role_id+"&pid=" + node.id;
},
});
};
/*发送选中菜单项到服务器*/
HYQMS.HyqRole.postMenu = function postMenu(role_id){
var menus = new Array();
menus.push(-1);
/*获取选中、半选中的节点id*/
var data = $('#HyqRoleMenuTree').tree('getChecked',['checked','indeterminate']);
console.log(data);
for (var i = 0; i < data.length; i++) {
menus.push(data[i].type+data[i].id);
};
$.ajax({
url:'role/rolemenusave.do',
type:'post',
dataType:'JSON',
data:{
role_id:role_id,
menus:menus
},
success:function(data){
if (data.status) {
$('#${domid}').window('destroy');
$('#HyqRoletreegrid').datagrid('reload');
HYQMS.MSG.show('配置成功!');
}else{
HYQMS.MSG.alert(data.info);
};
}
});
};
HYQMS.HyqRole.getMenuTree('${role_id}');
});
</script>
- easyui递归添加完所有的菜单及菜单所拥有的按钮,并根据数据库的值判断是否勾上
- 根据数据库的记录动态生成菜单并添加相应的单击事件
- 添加Eclipse自带的“保存”菜单及按钮
- unity 菜单按钮添加及相应窗口的实现
- 【转载于<小锋刚>博客园】C#遍历ContextMenuStrip右键菜单中包含子菜单的所有菜单并添加事件
- jQuery EasyUI的DataGrid 数据行上右键菜单,并Check行
- 为树形控件添加弹出式菜单,并跟踪所选择的项
- 禁用cvNamedWindow所创建窗口的系统菜单关闭按钮
- 为jQuery-easyui的tab组件添加右键菜单功能
- 为EasyUI 的Tab 标签添加右键菜单(转)
- 通过JS控制EasyUI-Layout的布局,并生成菜单
- vc6.0为工具条上的按钮添加下三角下拉菜单
- 在系统自带的计算器上添加按钮或菜单
- easyui右键菜单easyui-menu的坑
- 菜单的添加
- 【框架-MFC】CMFCMenuBar 菜单按钮的图标添加
- 使用 Javascript 并结合 XML 制作滑动透明的菜单,且该菜单拥有跟随鼠标的注释
- 设置右上角的菜单按钮
- jquery的$().each,$.each的区别
- GitHub创建SSH Keys
- C#的面向对象
- select下拉框的数据方式
- C++ 泛型
- easyui递归添加完所有的菜单及菜单所拥有的按钮,并根据数据库的值判断是否勾上
- 高仿微信摇一摇,动画效果为左右晃动
- LeetCode学习篇十七——Best Time to Buy and Sell Stock II
- linux进程通信——信号量
- ISO的七层模型是什么?tcp/udp是属于哪一层?tcp/udp有何优缺点?
- 2016年11月3日学习总结
- 浓缩
- Servlet监听器
- 怎么样对绝对地址0x100000赋值