前端界面:

 <%@ 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 }

效果图:

最新文章

  1. 同个项目写webservice引用EF出现的问题
  2. 把cookie以json形式返回,用js来set cookie.(解决手机浏览器未知情况下获取不到cookie)
  3. poj 3687(拓扑排序)
  4. 使用抓包工具SpyNet对你的网络进行监控
  5. 通过rsync搭建一个远程备份系统(一)
  6. 仿照jquery封装一个自己的js库(一)
  7. Excel中利用IF和TIME函数计算出上下班状态!
  8. 用任务管理器画CPU正弦曲线
  9. Solution for latex error:”Unknown graphics extension: .eps“ or &quot;Can not find XXX&quot;
  10. Html笔记(九)头标签
  11. safe_mode(php安全模式)
  12. 01 - 概述 VTK 6.0 迁移
  13. PipedInputStream/PipedOutputStream原理
  14. Android模拟器的文件目录介绍
  15. Zeppelin 用jdbc连接hive报错
  16. 关于responseBody注解中文乱码的问题解决
  17. TCP TIME WAIT
  18. Error:Failed to resolve: com.android.support:appcompat-v7
  19. 洛谷P4070 生成魔咒
  20. CodeVs 1009

热门文章

  1. 根据wsdl生成soap请求格式
  2. 常见python面试题
  3. Solr与JDK对应版本关系,Tomcat与JDK版本对应关系
  4. 题解 【Codeforces755A】 PolandBall and Hypothesis
  5. Verilog 编写规范
  6. tomcat、nginx、apache、tengine都是什么,及其作用
  7. jmeter的使用---控制器
  8. Mysq的安装
  9. C语言如何判断单个数字是否溢出:
  10. Hadoop架构: 流水线(PipeLine)