zoukankan      html  css  js  c++  java
  • OA项目之左导航

    左边导航(一层级,二层级,三层级,四层级)


    aspx:


    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="left.aspx.cs" Inherits="DigitalCampus.Web.Page.left" %>


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>栏目</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="css/left.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
        <script type="text/javascript" src="js/icons.js"></script>
        <script type="text/javascript" src="js/function.js"></script>
    </head>
    <body>
        <form id="form1" runat="server">
        <!-- 背景层DIV -->
        <div class="div_documentbg" id="div_documentbg">
        </div>
        <script language="javascript" type="text/javascript">
            ShowDocumentDivBG();
        </script>
        <div id="divMenu" class="left_menu" style="overflow: auto;">
            <%=Leftmenu %>
        </div>
        </form>
        <script language="javascript" type="text/javascript">
            CloseTipsBG();
            $(function () {
                $(".menu_f").click(function () {
                    $("ul.s").slideUp(400)
                    if ($(this).next("ul.s").css("display") == "none") {
                        $(this).next("ul.s").slideDown(400);
                    }
                    else {
                        $(this).next("ul.s").slideUp(400);
                    }


                });


                if ($("ul.t")) {
                    $(".menu_s").click(function () {
                        $("ul.t").slideUp(400)
                        if ($(this).next("ul.t").css("display") == "none") {
                            $(this).next("ul.t").slideDown(400);
                        }
                        else {
                            $(this).next("ul.t").slideUp(400);
                        }
                        //$(this).next("ul.t").slideDown(400);
                    });
                }


                if ($("ul.ft")) {
                    $(".menu_t").click(function () {
                        $("ul.ft").slideUp(400)
                        if ($(this).next("ul.ft").css("display") == "none") {
                            $(this).next("ul.ft").slideDown(400);
                        }
                        else {
                            $(this).next("ul.ft").slideUp(400);
                        }
                        //$(this).next("ul.ft").slideDown(400);
                    });
                }
            })


        </script>
    </body>
    </html>




    aspx.cs:


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using DigitalCampus.Common;
    using DigitalCampus.Web.Common;
    using DigitalCampus.DBUtility;
    using System.Text;


    namespace DigitalCampus.Web.Page
    {
        public partial class left : System.Web.UI.Page
        {
            protected int i = 0;
            protected string Leftmenu = String.Empty;
            protected string UserID = String.Empty;
            protected string siteMap = String.Empty;
            protected string showDivMenu = "1";
            string Module_Id = string.Empty;


            protected void Page_Load(object sender, EventArgs e)
            {
                CookiesMan.CheckAdminUserLogin();
                UserID = CookiesMan.GetCookie("xy_admin_user", "userID");
                Module_Id = "99020010000000000";
                if (!IsPostBack)
                {
                    LoadData();
                }
                siteMap = pfunction.QueryMenu(Module_Id);
            }


            protected void LoadData()
            {
                Leftmenu = GetUserLeftMenuByCache();
            }


            protected string GetUserLeftMenuByCache()
            {
                string cacheKey = "JSXY-GetUserLeftMenu-" + UserID;//注意命名规则 此处不能改变,因为清除缓存时用的到
                object objCache = clsUtility.GetCache(cacheKey);
                if (objCache == null)
                {
                    #region 加载LeftMenu
                    DataTable dt = new DataTable();
                    StringBuilder Sbuild = new StringBuilder();
                    string strSql = string.Empty;
                    string userRole = string.Empty;
                    userRole = CookiesMan.GetCookie("xy_admin_user", "userRoleID");
                    if (string.IsNullOrEmpty(userRole)) userRole = "0";
                    strSql = @"select * FROM TB_MenuInfo where IsShow='1' and Menu_Code in (select Menu_ID FROM TB_UserForMenu where Role_ID in (" + userRole + ") ) order by Menu_Order,ID ";
                    dt = DbHelperSQL.Query(strSql).Tables[0];
                    if (dt.Rows.Count > 0)
                    {
                        string strUrl = String.Empty;//链接的URl
                        string strTag = String.Empty;//跳转的属性
                        string sty = string.Empty;
                        DataRow[] dtr1;
                        dtr1 = dt.Select(" Menu_Parent='0'", "Menu_Order");
                        Sbuild.Append(" <ul class="f"> ");
                        #region 一级
                        for (int ii = 0; ii < dtr1.Length; ii++)
                        {
                            int parentCount = Convert.ToInt32(DbHelperSQL.GetSingle("select isnull(count(*),0) from TB_MenuInfo where Menu_Parent='" + dtr1[ii]["ID"] + "'").ToString());
                            if (parentCount != 0)
                            {
                                strUrl = "#";
                                strTag = "";
                            }
                            else
                            {
                                strUrl = dtr1[ii]["Menu_Url"].ToString();
                                strTag = "target="main"";
                            }
                            Sbuild.Append("<li><a href="" + strUrl + "" class="menu_f" " + strTag + ">" + dtr1[ii]["Menu_Ico"] + dtr1[ii]["Menu_Name"] + "</a> ");


                            #region 栏目二级
                            DataRow[] dtr2 = dt.Select(" Menu_Parent='" + dtr1[ii]["ID"] + "'", "Menu_Order");
                            if (dtr2.Length > 0) Sbuild.Append("<ul class="s"> ");
                            for (int j = 0; j < dtr2.Length; j++)
                            {
                                string MenuParent = dtr2[j]["ID"].ToString();
                                int ParentID = Convert.ToInt32(DbHelperSQL.GetSingle("select isnull(count(Menu_Parent),0) from TB_MenuInfo where Menu_Parent='" + MenuParent + "'").ToString());
                                if (ParentID != 0)
                                {
                                    strUrl = "#";
                                    strTag = "";
                                }
                                else
                                {
                                    strUrl = dtr2[j]["Menu_Url"].ToString();
                                    strTag = "target="main"";
                                }
                                Sbuild.Append("<li><a href="" + strUrl + "" class="menu_s" " + strTag + ">" + dtr2[j]["Menu_Ico"] + dtr2[j]["Menu_Name"] + "</a> ");


                                #region 栏目三级
                                DataRow[] dtr3 = dt.Select(" Menu_Parent='" + dtr2[j]["ID"] + "'", "Menu_Order");
                                if (dtr3.Length > 0) Sbuild.Append("<ul class="t">");
                                for (int jj = 0; jj < dtr3.Length; jj++)
                                {
                                    string MenuParent3 = dtr3[jj]["ID"].ToString();
                                    int ParentID3 = Convert.ToInt32(DbHelperSQL.GetSingle("select isnull(count(Menu_Parent),0) from TB_MenuInfo where Menu_Parent='" + MenuParent3 + "'").ToString());
                                    if (ParentID3 != 0)
                                    {
                                        strUrl = "#";
                                        strTag = "";
                                    }
                                    else
                                    {
                                        strUrl = dtr3[jj]["Menu_Url"].ToString();
                                        strTag = "target="main"";
                                    }
                                    Sbuild.Append("<li><a href="" + strUrl + "" class="menu_t" " + strTag + ">" + dtr3[jj]["Menu_Ico"] + dtr3[jj]["Menu_Name"] + "</a> ");
                                    #region 栏目四级
                                    DataRow[] dtr4 = dt.Select(" Menu_Parent='" + dtr3[jj]["ID"] + "'", "Menu_Order");
                                    if (dtr4.Length > 0) Sbuild.Append("<ul class="ft">");


                                    for (int jjj = 0; jjj < dtr4.Length; jjj++)
                                    {
                                        string MenuParent4 = dtr4[jjj]["ID"].ToString();
                                        int ParentID4 = Convert.ToInt32(DbHelperSQL.GetSingle("select isnull(count(Menu_Parent),0) from TB_MenuInfo where Menu_Parent='" + MenuParent4 + "'").ToString());
                                        if (ParentID4 != 0)
                                        {
                                            strUrl = "#";
                                            strTag = "";
                                        }
                                        else
                                        {
                                            strUrl = dtr4[jjj]["Menu_Url"].ToString();
                                            strTag = "target="main"";
                                        }
                                        Sbuild.Append("<li><a href="" + strUrl + "" " + strTag + ">" + dtr4[jjj]["Menu_Ico"] + dtr4[jjj]["Menu_Name"] + "</a></li> ");


                                    }
                                    if (dtr4.Length > 0) Sbuild.Append(" </ul> ");
                                    #endregion
                                    if (dtr4.Length == 0) Sbuild.Append("  </li> ");
                                }
                                if (dtr3.Length > 0) Sbuild.Append(" </ul> ");
                                #endregion


                                Sbuild.Append("  </li> ");
                            }
                            if (dtr2.Length > 0) Sbuild.Append(" </ul> ");
                            #endregion


                            Sbuild.Append("</li> ");
                        }
                        #endregion
                        Sbuild.Append("</ul> ");
                        //Leftmenu = Sbuild.ToString();
                    }
                    #endregion
                    objCache = Sbuild.ToString();
                    int minute = int.Parse(System.Web.Configuration.WebConfigurationManager.AppSettings["ModelCache"]);
                    clsUtility.AddCache(cacheKey, objCache, minute);
                }
                return objCache as string;
            }


            /// <summary>
            /// 获取用户栏目 Cache
            /// </summary>
            /// <param name="UserID"></param>
            /// <returns></returns>
            public DataTable GetUserMenuDataByCache(string UserID)
            {
                string cacheKey = "JSXY-GetUserFunction-" + UserID;//注意命名规则 此处不能改变,因为清除缓存时用的到
                object objCache = clsUtility.GetCache(cacheKey);
                if (objCache == null)
                {
                    try
                    {
                        string strSql = string.Empty;
                        string userRole = string.Empty;
                        userRole = CookiesMan.GetCookie("xy_admin_user", "userRoleID");
                        if (string.IsNullOrEmpty(userRole)) userRole = "0";
                        strSql = @"select * FROM TB_MenuInfo where IsShow='1' and Menu_Code in (select Menu_ID FROM TB_UserForMenu where Role_ID in (" + userRole + ") ) Order By Menu_Order,ID ";
                        DataTable dt = new DataTable();
                        dt = DbHelperSQL.Query(strSql).Tables[0];
                        objCache = dt;
                        int minute = int.Parse(System.Web.Configuration.WebConfigurationManager.AppSettings["ModelCache"]);
                        clsUtility.AddCache(cacheKey, objCache, minute);


                    }
                    catch
                    { }
                }
                return objCache as DataTable;
            }


            /// <summary>
            /// 加载栏目
            /// </summary>
            private void DataTree()
            {
                DataTable dt = new DataTable();
                StringBuilder Sbuild = new StringBuilder();
                //string strSql = string.Empty;
                //string userRole = string.Empty;
                //userRole = CookiesMan.GetCookie("xy_admin_user", "userRoleID");
                //if (string.IsNullOrEmpty(userRole)) userRole = "0";
                //strSql = @"select * FROM TB_MenuInfo where IsShow='1' and Menu_Code in (select Menu_ID FROM TB_UserForMenu where Role_ID in (" + userRole + ") ) order by Menu_Order,ID ";
                //dt = DbHelperSQL.Query(strSql).Tables[0];
                dt = GetUserMenuDataByCache(UserID);
                if (dt.Rows.Count == 0)
                {
                    return;
                }
                else
                {
                    string strUrl = String.Empty;//链接的URl
                    string strTag = String.Empty;//跳转的属性
                    string sty = string.Empty;
                    DataRow[] dtr1;
                    dtr1 = dt.Select(" Menu_Parent='0'", "Menu_Order");
                    Sbuild.Append(" <ul class="f"> ");


                    for (int ii = 0; ii < dtr1.Length; ii++)
                    {
                        int parentCount = Convert.ToInt32(DbHelperSQL.GetSingle("select isnull(count(*),0) from TB_MenuInfo where Menu_Parent='" + dtr1[ii]["ID"] + "'").ToString());
                        if (parentCount != 0)
                        {
                            strUrl = "#";
                            strTag = "";
                        }
                        else
                        {
                            strUrl = dtr1[ii]["Menu_Url"].ToString();
                            strTag = "target="main"";
                        }
                        Sbuild.Append("<li><a href="" + strUrl + "" class="menu_f" " + strTag + ">" + dtr1[ii]["Menu_Ico"] + dtr1[ii]["Menu_Name"] + "</a> ");


                        #region 栏目二级
                        DataRow[] dtr2 = dt.Select(" Menu_Parent='" + dtr1[ii]["ID"] + "'", "Menu_Order");
                        if (dtr2.Length > 0) Sbuild.Append("<ul class="s"> ");
                        for (int j = 0; j < dtr2.Length; j++)
                        {
                            string MenuParent = dtr2[j]["ID"].ToString();
                            int ParentID = Convert.ToInt32(DbHelperSQL.GetSingle("select isnull(count(Menu_Parent),0) from TB_MenuInfo where Menu_Parent='" + MenuParent + "'").ToString());
                            if (ParentID != 0)
                            {
                                strUrl = "#";
                                strTag = "";
                            }
                            else
                            {
                                strUrl = dtr2[j]["Menu_Url"].ToString();
                                strTag = "target="main"";
                            }
                            Sbuild.Append("<li><a href="" + strUrl + "" class="menu_s" " + strTag + ">" + dtr2[j]["Menu_Ico"] + dtr2[j]["Menu_Name"] + "</a> ");


                            #region 栏目三级
                            DataRow[] dtr3 = dt.Select(" Menu_Parent='" + dtr2[j]["ID"] + "'", "Menu_Order");
                            if (dtr3.Length > 0) Sbuild.Append("<ul class="t">");
                            for (int jj = 0; jj < dtr3.Length; jj++)
                            {
                                string MenuParent3 = dtr3[jj]["ID"].ToString();
                                int ParentID3 = Convert.ToInt32(DbHelperSQL.GetSingle("select isnull(count(Menu_Parent),0) from TB_MenuInfo where Menu_Parent='" + MenuParent3 + "'").ToString());
                                if (ParentID3 != 0)
                                {
                                    strUrl = "#";
                                    strTag = "";
                                }
                                else
                                {
                                    strUrl = dtr3[jj]["Menu_Url"].ToString();
                                    strTag = "target="main"";
                                }
                                Sbuild.Append("<li><a href="" + strUrl + "" class="menu_t" " + strTag + ">" + dtr3[jj]["Menu_Ico"] + dtr3[jj]["Menu_Name"] + "</a> ");
                                #region 栏目四级
                                DataRow[] dtr4 = dt.Select(" Menu_Parent='" + dtr3[jj]["ID"] + "'", "Menu_Order");
                                if (dtr4.Length > 0) Sbuild.Append("<ul class="ft">");


                                for (int jjj = 0; jjj < dtr4.Length; jjj++)
                                {
                                    string MenuParent4 = dtr4[jjj]["ID"].ToString();
                                    int ParentID4 = Convert.ToInt32(DbHelperSQL.GetSingle("select isnull(count(Menu_Parent),0) from TB_MenuInfo where Menu_Parent='" + MenuParent4 + "'").ToString());
                                    if (ParentID4 != 0)
                                    {
                                        strUrl = "#";
                                        strTag = "";
                                    }
                                    else
                                    {
                                        strUrl = dtr4[jjj]["Menu_Url"].ToString();
                                        strTag = "target="main"";
                                    }
                                    Sbuild.Append("<li><a href="" + strUrl + "" " + strTag + ">" + dtr4[jjj]["Menu_Ico"] + dtr4[jjj]["Menu_Name"] + "</a></li> ");


                                }
                                if (dtr4.Length > 0) Sbuild.Append(" </ul> ");
                                #endregion
                                if (dtr4.Length == 0) Sbuild.Append("  </li> ");
                            }
                            if (dtr3.Length > 0) Sbuild.Append(" </ul> ");
                            #endregion


                            Sbuild.Append("  </li> ");
                        }
                        if (dtr2.Length > 0) Sbuild.Append(" </ul> ");
                        #endregion


                        Sbuild.Append("</li> ");
                    }
                    Sbuild.Append("</ul> ");


                    Leftmenu = Sbuild.ToString();


                }


            }


        }
    }


















    表的结构:


    TB_MenuInfo:                                                         TB_UserForMenu:


    ID        bigint        自动编号                              ID  bigint 自动编号
    Menu_Code nvarchar(50) 编码                                  Role_ID  int        角色ID
    Menu_Name nvarchar(50) 名称                                  Menu_ID  bigint 栏目ID
    Menu_Parent nvarchar(50) 父级                                  Menu_Name  nvarchar(50) 栏目名称
    Menu_Rating nvarchar(50) 层级                                  Fun_ID  int           操作项ID
    Menu_Url nvarchar(1000) Url                                   Fun_Name  nvarchar(50) 操作项名称
    Menu_Ico nvarchar(200) Ico                                   CUser  nvarchar(50) 添加人
    Menu_Order int        排序                                  CTime  datetime 添加时间
    IsShow        nvarchar(50) 是否显示                              UUser  nvarchar(50) 修改人
    IsLast        nvarchar(50) 是否显示操作项                        UTime  datetime 修改时间
    Note        nvarchar(1000) 备注
    CUser        nvarchar(50) 创建人
    CTime        datetime 创建时间
    UUser        nvarchar(50) 修改人
    UTime        datetime 修改时间

  • 相关阅读:
    多线程使用常识
    《30天自制操作系统》实现中文显示
    DDD实践(一)
    为了钱这是很正当的,我跟你干,我要获得一个好的收入,我要改善我的生活,我要提高我的生活质量(转)
    Java对象序列化/反序列化的注意事项(转)
    Java使用Socket传输文件遇到的问题(转)
    大胆采用开源工具(转)
    如果常量类进行改变时,只编译常量类,而使用常量的类不重新编码,这样改动实际上算没有生效(转)
    在html中写python代码的语法和特点-----基于webpy的httpserver
    在Activity中为什么要用managedQuery()
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3290005.html
Copyright © 2011-2022 走看看