亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET無限級擴展菜單UserControl

2019-11-17 04:11:01
字體:
來源:轉載
供稿:網友

WebMenu.ascx 文件 Code
 1 <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebMenu.ascx.cs" Inherits="UserControls_WebMenu" %>
 2 <style type="text/CSS">
 3 /* common styling */
 4 .menu {font-family: arial, sans-serif; width:750px; position:relative; margin:0; font-size:11px; margin:50px 0;}
 5 .menu ul li a, .menu ul li a:visited {display:block; text-decoration:none; color:#000;width:104px; height:20px; text-align:center; color:#fff; border:1px solid #fff; background:#4286de; line-height:20px; font-size:11px; overflow:hidden;}
 6 .menu ul {padding:0; margin:0;list-style-type: none; }
 7 .menu ul li {float:left; margin-right:1px; position:relative;}
 8 .menu ul li ul {display: none;}
 9 /* specific to non IE browsers */
10 .menu ul li:hover a {color:#fff; background:#36f;}
11 .menu ul li:hover ul {display:block; position:absolute; top:21px; left:0; width:105px;}
12 .menu ul li:hover ul li a.hide {background:#bddbff; color:#000;}
13 .menu ul li:hover ul li:hover a.hide {background:#bddbff; color:#000;}
14 .menu ul li:hover ul li ul {display: none;}
15 .menu ul li:hover ul li a {display:block; background:#bddbff; color:#000;}
16 .menu ul li:hover ul li a:hover {background:#bddbff; color:#000;}
17 .menu ul li:hover ul li:hover ul {display:block; position:absolute; left:105px; top:0;}
18 .menu ul li:hover ul li:hover ul.left {left:-105px;}
19 </style>
20 <!--[if lte IE 6]>
21 <style type="text/css">
22 .menu ul li a.hide, .menu ul li a:visited.hide {display:none;}
23 .menu ul li a:hover ul li a.hide {display:none;}
24 .menu ul li a:hover {color:#fff; background:#36f;}
25 .menu ul li a:hover ul {display:block; position:absolute; top:21px; left:0; width:105px;}
26 .menu ul li a:hover ul li a.sub {background:#bddbff; color:#000;}
27 .menu ul li a:hover ul li a {display:block; background:#bddbff; color:#000;}
28 .menu ul li a:hover ul li a ul {visibility:hidden;}
29 .menu ul li a:hover ul li a:hover {background:#bddbff; color:#000;}
30 .menu ul li a:hover ul li a:hover ul {visibility:visible; position:absolute; left:105px; top:0; color:#000;}
31 .menu ul li a:hover ul li a:hover ul.left {left:-105px;}
32 </style>
33 <![endif]-->
34 -------------
WebMenu.ascx.cs文件Code
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Web;
 4 using System.Web.UI;
 5 using System.Web.UI.WebControls;
 6 using DAL;
 7 using System.Data;
 8 using Entity;
 9 using System.Text;
10
11 public partial class UserControls_WebMenu : System.Web.UI.UserControl
12 {
13     IEnumerable<MenuInfo> list;
14
15     PRotected void Page_Load(object sender, EventArgs e)
16     {
17         list = MenuInfoaccess.GetMenuTree();
18     }
19
20     protected override void Render(HtmlTextWriter writer)
21     {
22         base.Render(writer);
23
24         writer.Write("<div class='menu'>");
25        
26         if(list!=null)
27         writer.Write(ProductMenu(list));
28
29         writer.Write("</div>");
30     }
31
32     protected string ProductMenu(IEnumerable<MenuInfo> source)
33     {
34         StringBuilder sb = new StringBuilder();
35         sb.Append("<ul>");
36        
37         foreach (MenuInfo item in source)
38         {
39             if (item.ChildMenuInfo.Count != 0)
40             {
41                
42                 sb.Append(string.Format("<li><a class='hide' href='{1}'>{0}</a>", item.TitleCN, item.FilePath));
43                
44                 sb.Append("<!--[if lte IE 6]>");
45                 sb.Append(string.Format("<a class='sub' href='{1}' title=''>{0}&gt;",item.TitleCN,item.FilePath));
46                 sb.Append("<table><tr><td>");
47                 sb.Append("<![endif]-->");
48
49                 sb.Append(ProductMenu(item.ChildMenuInfo));//遞歸生成子菜單
50
51                 sb.Append("<!--[if lte IE 6]>");
52                 sb.Append("</td></tr></table>");
53                 sb.Append("</a>");
54                 sb.Append("<![endif]-->");
55
56                 sb.Append("</li>");
57             }
58             else
59             {
60                 sb.Append(string.Format("<li><a href='{1}'>{0}</a></li>", item.TitleCN, item.FilePath));
61             }
62
63         }
64
65         sb.Append("</ul>");
66
67         return sb.ToString();
68
69     }
70 }
71
-----------------------
MenuInfoAccess.cs文件Code
using System;
using System.Collections.Generic;
using System.Text;
using Entity;
using System.Data;

namespace DAL
{
    public class MenuInfoAccess
    {
        public static IEnumerable<MenuInfo> GetMenuTree()
        {
            string strSql = "select * from Menu order by sort";

            DataTable dt = OleDbHelper.ExecuteDataTable(OleDbHelper.CONN_STRING, CommandType.Text, strSql);

            return MenuInfoAccess.GetMenuNodeCollection(dt);
        }

        public static IEnumerable<MenuInfo> GetMenuNodeCollection(DataTable dt)
        {
            int type = 1;
            List<MenuInfo> menus = new List<MenuInfo>();


            MenuInfo menu;
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow dr = dt.Rows[i];
                if ((int)dr["ParentId"] == 0)
                {
                    menu = new MenuInfo();
                    menu.Level = type;
                    menu.Id = (int)dr["ID"];
                    menu.TitleCN = dr["NameCN"] == DBNull.Value ? string.Empty : (string)dr["NameCN"];
                    menu.TitleEN = dr["NameEN"]==DBNull.Value?string.Empty:(string)dr["NameEN"];
                    menu.FilePath = dr["URL"]==DBNull.Value?string.Empty:(string)dr["URL"];
                    menu.IsVisibily = (bool)dr["Visibily"];
                    menu.ChildMenuInfo = GetChileNodeCollection(menu, dt, type);//遞歸獲得子節點結合

                    menus.Add(menu);
                }
            }
            return menus;
        }

        //CHILE COLLECTION
        public static List<MenuInfo> GetChileNodeCollection(MenuInfo xElement, DataTable C, int type)
        {
            int childType = type + 1;
            MenuInfo item;
            List<MenuInfo> list = new List<MenuInfo>();

            DataRow[] collection = C.Select("ParentId=" + xElement.Id, "sort");
            if (collection.Length != 0)
            {
                foreach (DataRow dr in collection)
                {
                    item = new MenuInfo();
                    item.Level = childType;
                    item.Id = (int)dr["ID"];
                    item.TitleCN = dr["NameCN"]==DBNull.Value?string.Empty:(string)dr["NameCN"];
                    item.TitleEN = dr["NameEN"] == DBNull.Value ? string.Empty : (string)dr["NameEN"];
                    item.FilePath = dr["URL"] == DBNull.Value ? string.Empty : (string)dr["URL"];
                    item.IsVisibily = (bool)dr["Visibily"];
                    item.ChildMenuInfo = GetChileNodeCollection(item, C, childType);//遞歸獲得子節點結合
                    list.Add(item);
                }
            }
            return list;
        }
    }
}

-----------------------------------------------------------
MenuInfo.cs 菜單實體類Code
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4
 5 namespace Entity
 6 {
 7     /// <summary>
 8     /// 菜單信息實體類
 9     /// </summary>
10     [Serializable]
11     public class MenuInfo
12     {
13         public int Id { get; set; }
14         /// <summary>
15         /// <summary>
16         /// 顯示名稱
17         /// </summary>
18         public string TitleCN { get; set; }
19         public string TitleEN { get; set; }
20        
21         /// <summary>
22         /// 控件的完整類名或者文件相對路徑
23         /// </summary>
24         public string FilePath { get; set; }
25
26         public MenuInfo Parent { get; set; }
27
28         public List<MenuInfo> ChildMenuInfo { get; set; }
29
30         /// <summary>
31         /// 節點層級,數據庫可有可無這個字段,實體類需要
32         /// </summary>
33         private int level;
34         public int Level
35         {
36             get { return level; }
37             set { level = value; }
38         }
39         /// <summary>
40         /// 是否顯示在菜單欄中
41         /// </summary>
42         private bool? isVisibily;
43         public bool? IsVisibily
44         {
45             get { return isVisibily; }
46             set { isVisibily = value; }
47         }
48     }
49


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区在线免费视频| 亚洲精品大尺度| 日韩精品福利在线| 日韩av一区在线观看| 欧美成人中文字幕在线| 91精品国产高清久久久久久久久| 日韩在线观看免费高清完整版| 成人精品视频久久久久| 欧美三级免费观看| 精品人伦一区二区三区蜜桃网站| 国产在线一区二区三区| 欧美电影在线观看| 疯狂做受xxxx欧美肥白少妇| 久久这里只有精品99| 国产成人免费av电影| 欧美电影免费播放| 亚洲风情亚aⅴ在线发布| 亚洲欧美成人精品| 97国产suv精品一区二区62| 亚洲精品久久久久| 久久久国产一区二区| 亚洲精品视频在线播放| **欧美日韩vr在线| 欧美日韩成人网| 欲色天天网综合久久| 日本国产精品视频| 日韩黄在线观看| 国产91成人video| 亚洲色图第三页| 国产亚洲xxx| 高跟丝袜欧美一区| 欧美日本黄视频| 日本久久久久久久| 久久精品国产视频| 亚洲精品综合久久中文字幕| 久久精品国产99国产精品澳门| 国产成人精品久久二区二区| 国产91精品青草社区| 日产精品久久久一区二区福利| 青草青草久热精品视频在线观看| 亚洲欧洲在线观看| 国产精品视频大全| 欧美亚洲激情视频| 91在线高清视频| 欧美成人午夜剧场免费观看| 日本久久久久亚洲中字幕| 成人激情视频在线播放| 亚洲成人xxx| 成人精品一区二区三区电影免费| 精品久久久久久久久久ntr影视| 青青青国产精品一区二区| 欧洲成人在线观看| 91久久综合亚洲鲁鲁五月天| 亚洲男人的天堂在线| 亚洲精品在线视频| 国产精品成人观看视频国产奇米| 亚洲国产精品成人av| 91精品视频在线播放| 69精品小视频| 国产午夜精品视频免费不卡69堂| 国产亚洲xxx| 久久免费精品日本久久中文字幕| 欧美多人爱爱视频网站| 亚洲成人a**站| 一区二区中文字幕| 一区二区成人精品| 欧洲中文字幕国产精品| 91精品国产综合久久香蕉922| 亚洲xxx大片| 国产视频精品久久久| 亚洲第一级黄色片| 欧美成人精品xxx| 精品高清一区二区三区| 国产精品最新在线观看| 国产精品成人播放| 在线色欧美三级视频| 色婷婷综合久久久久中文字幕1| 亚洲午夜精品久久久久久久久久久久| 亚洲japanese制服美女| 久久亚洲国产精品| 午夜伦理精品一区| 久久精品视频va| 色悠久久久久综合先锋影音下载| 欧美高清电影在线看| 亚洲专区国产精品| 尤物精品国产第一福利三区| 欧美高清视频在线| 久久精品一区中文字幕| 久久精品99久久久香蕉| 国产精品一区二区三区成人| 在线日韩日本国产亚洲| 亚洲韩国日本中文字幕| 久久激情视频久久| 国产精品白丝av嫩草影院| 91在线直播亚洲| 欧美日韩国产激情| 国产精品一区二区久久精品| 国产精品麻豆va在线播放| 国产亚洲成精品久久| 伊人一区二区三区久久精品| 国产欧美精品xxxx另类| 亚洲乱亚洲乱妇无码| 97久久超碰福利国产精品…| 国内精品久久久久伊人av| 久久成人精品一区二区三区| 欧美大学生性色视频| 亚洲精品www久久久久久广东| 国产欧美日韩精品丝袜高跟鞋| 亚洲一区美女视频在线观看免费| 亚洲国产欧美一区二区三区同亚洲| 久久国产一区二区三区| 久久国产精品久久久久久久久久| 成人综合网网址| 色妞久久福利网| 国产精品无av码在线观看| 国产日韩专区在线| 国产精品第一区| 尤物yw午夜国产精品视频| 日韩久久精品电影| 青青草原一区二区| 在线一区二区日韩| 欧美在线国产精品| 日韩在线免费av| 深夜成人在线观看| 日韩激情第一页| 日韩欧美在线中文字幕| 日韩免费视频在线观看| 日韩精品高清在线| 国产欧美精品一区二区| 欧美高清电影在线看| 91国产美女视频| 国产精品露脸av在线| 国产精品免费视频xxxx| 国产一区私人高清影院| www.久久色.com| 欧美高清视频免费观看| 欧美美女15p| 韩日精品中文字幕| 国产主播喷水一区二区| 国产69精品久久久久9| 97av在线视频免费播放| 日本高清视频精品| 日本午夜在线亚洲.国产| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美亚洲另类在线| 亚洲香蕉成视频在线观看| 久久久久久国产免费| 亚洲人成网在线播放| 国产精品精品久久久久久| 日本免费一区二区三区视频观看| 日韩av影视在线| 中文字幕日韩高清| 日韩精品免费在线视频观看| 日韩av在线不卡| 韩国三级日本三级少妇99| 久久综合网hezyo| 欧美在线视频网| 亚洲缚视频在线观看| 国产精品视频公开费视频| 日韩一级黄色av| 免费97视频在线精品国自产拍| 国产精品极品在线| 日韩av成人在线| 91视频免费网站|