前端界面:

 <%@ 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">
&copy; 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的更多相关文章

  1. [ASP.NET MVC] 使用CLK.AspNet.Identity提供依权限显示选单项目的功能

    [ASP.NET MVC] 使用CLK.AspNet.Identity提供依权限显示选单项目的功能 CLK.AspNet.Identity CLK.AspNet.Identity是一个基于ASP.NE ...

  2. View页面根据权限显示不同的内容

    1.View中根据权限显示相关操作按钮 @if (CoreTools.CheckAction(HttpContext.Current, "Delete"))        {    ...

  3. 根据权限显示隐藏SharePoint 2010快速启动栏的链接

    转:http://www.360sps.com/Item/ShowAndHiddenLink.aspx 在SharePoint 2010的快速启动栏中可以根据权限来显示或隐藏列表.库.网站的链接,如果 ...

  4. Android无需权限显示悬浮窗, 兼谈逆向分析app

    前言 最近UC浏览器中文版出了一个快速搜索的功能, 在使用其他app的时候, 如果复制了一些内容, 屏幕顶部会弹一个窗口, 提示一些操作, 点击后跳转到UC, 显示这个悬浮窗不需要申请android. ...

  5. odoo10 fields.Selection 根据权限显示不同的selection内容

    摘要:一般作为下拉选项,selection的选项内容是固定,针对一些特殊要求,根据权限组显示不同的selection内容的,可以参考odoo源码的. 前提:基于 odoo10.0 的源码 参考源码1: ...

  6. ongl表达式中得到对象,调用对象方法(OA项目权限显示模块)

    在用户是否拥有某项权限的问题  是这样解决的: 用户登录之后  登录信息是保存在session域中的  通过el表达式可得到登录的对象信息  那么怎样判断用户是否拥有某项权限呢 ?如果没有上图中的判断 ...

  7. 齐博x1会员中心菜单权限显示

    会员中心的菜单可以通过后台设置用户组权限进行显示或者是隐藏.比如商城里的菜单如下: 菜单文件是:\application\shop\member_menu.php return array( 'cms ...

  8. Android无需权限显示悬浮窗

    TYPE_TOAST一直都可以显示, 但是用TYPE_TOAST显示出来的在2.3上无法接收点击事件, 因此还是无法随意使用. 下面是我之前研究后台线程显示对话框的时候记得笔记, 大家可以看看我们项目 ...

  9. ztree已拥有权限显示

    抄自 http://tieba.baidu.com/p/4394654036 $(document).ready(function () { var ID=@ViewBag.id; $.ajax({ ...

随机推荐

  1. IntelliJ IDEA 2017.3尚硅谷-----鼠标悬浮提示

    建议不会的直接百度取消设置

  2. Python入门3 —— 基本数据类型

    一:为何变量值(记录的数据)要有类型呢? 1.既然可以记录事物的状态,为什么要分类型呢? 变量值是来记录事物状态的, 而事物的状态是多种多样的, 所以对应着就要应该用不同类型的值去记录这些状态. 二: ...

  3. 7.log4j

    Log4j:日志工厂的一部分(使用起来比较麻烦) 1.要想使用外部类,得先导包 pom.xml <dependency> <groupId>log4j</groupId& ...

  4. Strange Bank(找零问题)

    题目描述 为了使取钱变得困难,某家银行在一次操作中只允许其客户提取下列金额之一: 1日元(日本的货币) 6日元,62(=36)日元,63(=216)日元,… 9日元,92(=81)日元,93(=729 ...

  5. 调用百度地图api隐藏版权信息

    调用百度地图API隐藏右下角版权信息 商用的话建议不要隐藏,避免侵权. 隐藏前: 隐藏后: .BMap_cpyCtrl { display: none; } .anchorBL { display: ...

  6. Led Night Light Factory: Traveler Led Night Light

    Wake up in a strange hotel room in the evening and find the way to the bathroom, without stepping on ...

  7. AC3 bit allocation

    1.bit allocation overview bit allocation通过分析audio 信号的频谱envelop,使用masking effect来确定使用多少bit来表示频率系数的man ...

  8. linux下修改mysql的编码格式

    修改编码格式:https://blog.csdn.net/qq_30038111/article/details/79376137         改编码格式在配置文件中修改才有效,在命令行中修改没效 ...

  9. 吴裕雄 python 机器学习——超大规模数据集降维IncrementalPCA模型

    # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...

  10. Python面向对象基础语法

    目标 dir 内置函数 定义简单的类(只包含方法) 方法中的 self 参数 初始化方法 内置方法和属性 01. dir 内置函数(知道) 在 Python 中 对象几乎是无所不在的,我们之前学习的  ...