前端界面:

 <%@ 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. word文档巧替换(空行替换、空格替换、软回车替换成硬回车)

    一.空行替换 在日常工作中,我们经常从网上下载一些文字材料,往往因空行多使得页数居高不下.一般方法是:在“编辑”菜单中打开“查找和替换”对话框(或按ctrl+H),在“查找内容”中输入“^p^p”“替 ...

  2. iterations 快捷键

    原帖:https://blog.csdn.net/Soinice/article/details/83505198 为了防止删除备份的. iterations 快捷键 Live Templates 其 ...

  3. Docker 进入正在运行的容器的4种方式

    在使用Docker创建了容器之后,如何进入该容器呢? 进入Docker容器比较常见的几种做法如下: 使用docker attach 使用SSH 使用nsenter 使用exec 一.使用docker ...

  4. 题解【洛谷P2341】 [HAOI2006]受欢迎的牛

    题面 题解 \(Tarjan\)缩点后统计每个点的出度. 如果有多个点出度为\(0\),就直接输出\(0\),否则输出出度为\(0\)的强连通分量里的点数. 代码 #include <iostr ...

  5. 使用pdf.js显示pdf文件

    <script type="text/javascript" src="build/pdf.min.js"></script> < ...

  6. vue 项目太大, 导致 javascript heap out of memory

    原因: node 环境, 对单个进程的内存是有限制的, 但是现在前端项目太大, 所以我们需要根据当前机器环境, 手动加大node的内存限制 安装包 npm i increase-memory-limi ...

  7. 线性筛-euler,强大O(n)

    欧拉函数是少于或等于n的数中与n互质的数的数目 φ(1)=1(定义) 类似与莫比乌斯函数,基于欧拉函数的积性 φ(xy)=φ(x)φ(y) 由唯一分解定理展开显然,得证 精髓在于对于积性的应用: ){ ...

  8. 【PAT甲级】1102 Invert a Binary Tree (25 分)(层次遍历和中序遍历)

    题意: 输入一个正整数N(<=10),接着输入0~N-1每个结点的左右儿子结点,输出这颗二叉树的反转的层次遍历和中序遍历. AAAAAccepted code: #define HAVE_STR ...

  9. MVVM架构的理解

    摘自维基百科 MVVM(Model–view–viewmodel)是一种软件架构模式. MVVM有助于将图形用户界面的开发与业务逻辑或后端逻辑(数据模型)的开发分离开来,这是通过置标语言或GUI代码实 ...

  10. RedHat7 / CentOS 7 忘记root密码修改

    摘自:https://blog.csdn.net/bubbleyang/article/details/91360856 进入互动式命令环境 开机出现 grub boot loader 开机选项菜单时 ...