根据权限显示accordion
前端界面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="EasyUIWeb.Home" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>EasyUi--权限管理</title>
<link href="Script/jquery-easyui-1.7.0/themes/default/easyui.css" rel="stylesheet" />
<link href="css/gu.css" rel="stylesheet" />
<link href="css/icon.css" rel="stylesheet" />
<script src="Script/jquery-easyui-1.7.0/jquery.min.js"></script>
<script src="Script/jquery-easyui-1.7.0/jquery.easyui.min.js"></script>
<script src="Script/jquery-easyui-1.7.0/locale/easyui-lang-zh_CN.js"></script>
<script src="Script/Public/Common.js"></script>
<script src="Script/LoadNav.js"></script>
<script type="text/javascript">
$(function () {
function getWidth(percent) {
return parseInt(document.body.clientWidth * percent);
}
function getHight(percent) {
return parseInt(document.body.clientHeight * percent);
} //动态改变大小
$(window).resize(function () {
});
});
</script>
</head>
<body class="easyui-layout">
<div class="wu-header" data-options="region:'north',border:false,split:true">
<div class="wu-header-left">
<h1>EasyUI Web Admin</h1>
</div>
<div class="wu-header-right">
<p><span id="span_userName" style="color: red"><strong class="easyui-tooltip" title="2条未读消息">admin</strong></span>,欢迎您!</p>
</div>
</div> <div class="wu-sidebar" data-options="region:'west',split:true,border:true,title:'导航菜单'">
<div class="easyui-accordion" data-options="border:false,fit:true" id="RightAccordion"> </div>
</div> <div class="wu-main" data-options="region:'center'">
<div id="wu-tabs" class="easyui-tabs" data-options="border:false,fit:true">
<div title="首页" data-options="closable:false,iconCls:'icon-tip',cls:'pd3'">
<iframe scrolling="auto" frameborder="0" src="Pages/BuyBill.aspx" style="width: 100%; height: 99%;"></iframe>
</div>
</div>
</div> <div class="wu-footer" data-options="region:'south',border:true,split:false">
© 2013 Wu All Rights Reserved
</div>
</body>
</html>
JS代码:
$(function () {
function getWidth(percent) {
return document.body.clientWidth * percent;
}
$("#RightAccordion").accordion({ //初始化accordion
fillSpace: true,
fit: true,
border: false,
animate: false
});
$.ajax({
type: 'post',
dataType: "json",
url: "/Handlers/MenuHandler.ashx?action=LoadUserAuthorizeMenu&userId=" + userId + "&menuParId=1",
success: function (data) {
$.each(data, function (i, n) {
var menuId = n.id;
$('#RightAccordion').accordion('add', {
title: n.text,
selected: true,
iconCls: n.iconCls,
content: ' <div title="' + n.text + '"><ul class="easyui-tree wu-side - tree" id="tree' + menuId + '" ></ul></div> '
});
$.parser.parse();
$.getJSON(
"/Handlers/MenuHandler.ashx?action=LoadUserAuthorizeMenu&userId=" + userId + "&menuParId=" + menuId,
function (result) {
$("#tree" + menuId).tree({
data: result,
onBeforeExpand: function (node, param) {
$("#tree" + menuId).tree('options').url = "/Handlers/MenuHandler.ashx?action=LoadUserAuthorizeMenu&userId=" + userId + "&menuParId= " + node.id;
},
onClick: function (node) {
if (node.state == 'closed') {
$(this).tree('expand', node.target);
} else if (node.state == 'open') {
$(this).tree('collapse', node.target);
var tabTitle = node.text;
var url = node.menuUrl;
var icon = node.iconCls;
addTab(tabTitle, url, icon);
}
}
})
}
)
})
}
})
})
//选项卡
function addTab(title, url, icon) {
if ($('#wu-tabs').tabs('exists', title)) {
$('#wu-tabs').tabs('select', title);
} else {
var content = '<iframe scrolling="auto" frameborder="0" src="' + url + '" style="width:100%;height:99.5%;"></iframe>';
$('#wu-tabs').tabs('add', {
title: title,
content: content,
iconCls: icon,
fit: true,
cls: 'pd3',
closable: true
});
}
}
处理逻辑:
MenuHandle.ashx:
public class MenuHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
var action = Request.GetQueryString("Action");
try
{
switch (action)
{
case "LoadUserAuthorizeMenu":
this.LoadUserAuthorizeMenu(context);
break;
default:
break;
};
}
catch (Exception ex)
{
Response.OutResult(context, new MsgResult() { Success = false, Message = ex.ToString() });
}
} private void LoadUserAuthorizeMenu(HttpContext context)
{
int userId = Request.GetQueryInt("userId", );
int menuParId = Request.GetQueryInt("menuParId", ); List<Model_Navigation> menuList = new BLL_Menu().GetUserMenuData(userId, menuParId);
if (menuList != null && menuList.Count > )
{
for (int i = ; i < menuList.Count; i++)
{
string where = "menuParId= " + menuList[i].id;
if(new BLL_Menu().GetMenuTable(where).Count > )
{
menuList[i].state = "closed";
}
else
{
menuList[i].state = "open";
}
}
} string jsonStr = JsonConvert.SerializeObject(menuList);
Response.WriteJson(context, jsonStr);
}
}
BLL_Menu.cs
public class BLL_Menu
{
private readonly DAL_Menu dal = new DAL_Menu(); public List<Model_Navigation> GetUserMenuData(int userId, int menuParId)
{
DataSet ds = this.dal.GetUserMenuData(userId, menuParId);
return ModelHandler<Model_Navigation>.FillModel(ds.Tables[]);
} public List<Model_tb_menu> GetMenuTable(string where)
{
DataSet ds = this.dal.GetMenuTable(where);
return ModelHandler<Model_tb_menu>.FillModel(ds.Tables[]);
}
} DAL_Menu.cs
public class DAL_Menu
{
public DataSet GetUserMenuData(int userId, int menuParId)
{
string sql = @"SELECT distinct(m.menuName) as text, m.menuId as id, m.menuIcon as iconCls, m.menuParId, m.menuUrl FROM tb_users users
INNER JOIN dbo.tb_users_role ur ON users.userId = ur.userId
INNER JOIN dbo.tb_role_menu_button rmb ON ur.roleId = rmb.roleId
INNER JOIN dbo.tb_menu m ON rmb.menuId = m.menuId
WHERE users.userId = " + userId + " AND m.menuParId = " + menuParId + " order by m.menuParId"; return DbHelperSQL.Query(sql);
} public DataSet GetMenuTable(string where)
{
StringBuilder sbSql = new StringBuilder();
sbSql.Append("SELECT menuId AS id, menuName AS text, menuIcon AS iconCls, * FROM dbo.tb_menu "); if (!string.IsNullOrEmpty(where))
{
sbSql.Append(" WHERE " + where);
} return DbHelperSQL.Query(sbSql.ToString());
}
}
Model_tb_menu.cs
[Serializable]
public partial class Model_tb_menu
{
public Model_tb_menu()
{ }
#region Model
public int id { get; set; }
public string text { get; set; }
public string iconCls { get; set; }
private int _menuid;
private int _menuparid;
public string menuParName { get; set; }
private string _menuname;
private string _menucode;
private string _menuurl;
private string _menuicon;
private DateTime? _createtime = DateTime.Now;
private string _createby;
private DateTime? _updatetime = DateTime.Now;
private string _updateby;
public string state { get; set; }
/// <summary>
///
/// </summary>
public int menuId
{
set { _menuid = value; }
get { return _menuid; }
}
/// <summary>
///
/// </summary>
public int menuParId
{
set { _menuparid = value; }
get { return _menuparid; }
}
/// <summary>
///
/// </summary>
public string menuName
{
set { _menuname = value; }
get { return _menuname; }
}
/// <summary>
///
/// </summary>
public string menuCode
{
set { _menucode = value; }
get { return _menucode; }
}
/// <summary>
///
/// </summary>
public string menuUrl
{
set { _menuurl = value; }
get { return _menuurl; }
}
/// <summary>
///
/// </summary>
public string menuIcon
{
set { _menuicon = value; }
get { return _menuicon; }
}
/// <summary>
///
/// </summary>
public DateTime? createTime
{
set { _createtime = value; }
get { return _createtime; }
}
/// <summary>
///
/// </summary>
public string createBy
{
set { _createby = value; }
get { return _createby; }
}
/// <summary>
///
/// </summary>
public DateTime? updateTime
{
set { _updatetime = value; }
get { return _updatetime; }
}
/// <summary>
///
/// </summary>
public string updateBy
{
set { _updateby = value; }
get { return _updateby; }
}
#endregion Model }
效果图:

根据权限显示accordion的更多相关文章
- [ASP.NET MVC] 使用CLK.AspNet.Identity提供依权限显示选单项目的功能
[ASP.NET MVC] 使用CLK.AspNet.Identity提供依权限显示选单项目的功能 CLK.AspNet.Identity CLK.AspNet.Identity是一个基于ASP.NE ...
- View页面根据权限显示不同的内容
1.View中根据权限显示相关操作按钮 @if (CoreTools.CheckAction(HttpContext.Current, "Delete")) { ...
- 根据权限显示隐藏SharePoint 2010快速启动栏的链接
转:http://www.360sps.com/Item/ShowAndHiddenLink.aspx 在SharePoint 2010的快速启动栏中可以根据权限来显示或隐藏列表.库.网站的链接,如果 ...
- Android无需权限显示悬浮窗, 兼谈逆向分析app
前言 最近UC浏览器中文版出了一个快速搜索的功能, 在使用其他app的时候, 如果复制了一些内容, 屏幕顶部会弹一个窗口, 提示一些操作, 点击后跳转到UC, 显示这个悬浮窗不需要申请android. ...
- odoo10 fields.Selection 根据权限显示不同的selection内容
摘要:一般作为下拉选项,selection的选项内容是固定,针对一些特殊要求,根据权限组显示不同的selection内容的,可以参考odoo源码的. 前提:基于 odoo10.0 的源码 参考源码1: ...
- ongl表达式中得到对象,调用对象方法(OA项目权限显示模块)
在用户是否拥有某项权限的问题 是这样解决的: 用户登录之后 登录信息是保存在session域中的 通过el表达式可得到登录的对象信息 那么怎样判断用户是否拥有某项权限呢 ?如果没有上图中的判断 ...
- 齐博x1会员中心菜单权限显示
会员中心的菜单可以通过后台设置用户组权限进行显示或者是隐藏.比如商城里的菜单如下: 菜单文件是:\application\shop\member_menu.php return array( 'cms ...
- Android无需权限显示悬浮窗
TYPE_TOAST一直都可以显示, 但是用TYPE_TOAST显示出来的在2.3上无法接收点击事件, 因此还是无法随意使用. 下面是我之前研究后台线程显示对话框的时候记得笔记, 大家可以看看我们项目 ...
- ztree已拥有权限显示
抄自 http://tieba.baidu.com/p/4394654036 $(document).ready(function () { var ID=@ViewBag.id; $.ajax({ ...
随机推荐
- JavaScript 数组,字符串,函数
数组 创建数组 利用 new 创建数组 var arr = new Array(); console.log(arr); // Array(0) 数组字面量创建 var arr = []; // 空数 ...
- 松软科技web教程:JavaScript HTML DOM 事件监听器
addEventListener() 方法 实例 添加当用户点击按钮时触发的事件监听器: document.getElementById("myBtn").addEventList ...
- C++-POJ3274-Gold Balanced Lineup[hash]
不是很懂? 胡乱hash #include <set> #include <map> #include <cmath> #include <queue> ...
- FastDFS :java.lang.Exception: getStoreStorage fail, errno code: 28
FastDFS 服务正常,突然报错:java.lang.Exception: getStoreStorage fail, errno code: 28 答:错误代码28表示 No space left ...
- mongo shell远程连接使用数据库
mongo mydb --username user1 --host --password --username 用户名 --host 连接ip --port 连接端口号 --password 密码 ...
- 我的reshape观
reshape(1,2)把结果分成1块,每一块2个元素 reshape(2,1)把结果分成2块,每一块1个元素 reshape(-1,1)把结果分成任意块,每一块1个元素 reshape(1,-1)把 ...
- 给Python初学者的一些编程技巧
展开这篇文章主要介绍了给Python初学者的一些编程技巧,皆是基于基础的一些编程习惯建议,需要的朋友可以参考下交换变量 x = 6y = 5 x, y = y, x print x>>&g ...
- c++中const变量定义与头文件包含的有关问题
在使用C++进行程序开发的时候,有个常识我们很熟悉,就是把类的定义写在.h文件中,把类的具体实现写在.cpp文件中.这毫无疑问是对的.但我们很少去思考为什么要这样做,本文结合自己的学习体会,对头文件及 ...
- opencv:形态学操作-腐蚀与膨胀
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...
- PHP 代码内执行Linux命令
还是那个问题,就是那个php填写pdf表单,因为副武器的原因,改用命令执行了,哎,一个问题好多知识点啊,先来说说PHP执行linux命令,其实挺简单的,但是呢,后面说说我遇到的问题 1.PHP执行命令 ...