asp.net中利用PlaceHolder控件来设计页面中的菜单源码

本文介绍如何使用ASP.NET中的PlaceHolder控件设计灵活的菜单系统,可根据用户权限动态显示或隐藏菜单项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.NET中菜单控件可以直接使用,但是不能够根据代码或者根据要求进行显示和隐藏,使用树形式又无法实现单机软件中那种菜单的感觉,现在利用 asp.net中PlaceHolder控件来设计页面中的菜单,并提供源码,希望对大家能够有所帮助。如果不明白可以和我联系。

MenuItem CreateMenuItem(String text, String url, String toolTip, string value)
    {
        // Create a new MenuItem object.
        MenuItem menuItem = new MenuItem();
        // Set the properties of the MenuItem object using
        // the specified parameters.
        menuItem.Text = text;
        menuItem.NavigateUrl = url;
        menuItem.ToolTip = toolTip;
        menuItem.Value = value;
        return menuItem;
    }
  protected void Page_Load(object sender, EventArgs e)
    {
        //if (Convert.ToInt32(Session["userqx"]) < 4)
        //{
        //    Menu1.Items.Clear;//.FindItem("sysmanager").Enabled = false.Items.Remove(sysmanager);//.
        //}
        Menu newmenu = new Menu();
        newmenu.ID = "NavigationMenu";
        newmenu.DisappearAfter = 2000;
        newmenu.Orientation = Orientation.Horizontal;
        newmenu.BackColor = System.Drawing.Color.FromName("#B5C7DE");
        newmenu.DynamicHorizontalOffset = 2;
        newmenu.ForeColor = System.Drawing.Color.FromName("#284E98");
        newmenu.StaticSubMenuIndent = 10;
        //newmenu.Font.Names = "宋体";
        //newmenu.Font.Size = (FontUnit)(Small);


        //newmenu.Target = "_blank";
        newmenu.StaticMenuItemStyle.VerticalPadding = 2;
        newmenu.StaticMenuItemStyle.HorizontalPadding = 5;
        newmenu.StaticMenuItemStyle.ForeColor = System.Drawing.Color.FromName("Blue");
        newmenu.StaticMenuItemStyle.BackColor = System.Drawing.Color.FromName("#C0C0FF");

        newmenu.DynamicMenuItemStyle.ForeColor = System.Drawing.Color.FromName("#804000");
        newmenu.DynamicMenuItemStyle.BackColor = System.Drawing.Color.FromName("#C0C0FF");
        newmenu.DynamicMenuItemStyle.HorizontalPadding = 5;
        newmenu.DynamicMenuItemStyle.VerticalPadding = 2;

        newmenu.DynamicHoverStyle.BackColor = System.Drawing.Color.FromName("#284E98");
        newmenu.DynamicHoverStyle.ForeColor = System.Drawing.Color.FromName("White");

        newmenu.DynamicMenuStyle.BackColor = System.Drawing.Color.FromName("#B5C7DE");

        newmenu.StaticSelectedStyle.BackColor = System.Drawing.Color.FromName("#507CD1");
        newmenu.DynamicSelectedStyle.BackColor = System.Drawing.Color.FromName("#507CD1");

        //newmenu.DynamicMenuStyle.HorizontalPadding = 5;
        //newmenu.DynamicMenuStyle.VerticalPadding = 2;
        newmenu.DynamicMenuStyle.BackColor = System.Drawing.Color.FromName("#B5C7DE");
        //newmenu.DynamicMenuStyle.ForeColor = System.Drawing.Color.FromName("#804000");

        MenuItem homemenu;
        homemenu = CreateMenuItem("系统首页", "~/Default.aspx", "系统首页", "index");
        newmenu.Items.Add(homemenu);

        MenuItem reportmenu;
        reportmenu = CreateMenuItem("报表", "", "报表", "reportcar");
        MenuItem reportstopmenu;
        reportstopmenu = CreateMenuItem("报停", "~/Default.aspx?Mid=downloadstopreport", "报停", "stopcar");
        MenuItem reportalarmmenu;
        reportalarmmenu = CreateMenuItem("违章", "~/Default.aspx?Mid=downloadalarmreport", "违章", "alarmcar");
        MenuItem reportmonthmenu;
        reportmonthmenu = CreateMenuItem("月综合", "~/Default.aspx?Mid=downloadmonthreport", "月综合", "monthcar");
           reportmenu.ChildItems.Add(reportstopmenu);
        reportmenu.ChildItems.Add(reportalarmmenu);
        reportmenu.ChildItems.Add(reportmonthmenu);   
        newmenu.Items.Add(reportmenu);

        MenuItem companyinfo;
        companyinfo = CreateMenuItem("单位管理", "", "单位管理", "companyinfo");
        MenuItem carinfo;
        carinfo = CreateMenuItem("车辆", "~/Default.aspx?Mid=CarInfo", "车辆", "carinfo");
        MenuItem driverinfo;
        driverinfo = CreateMenuItem("从业人员", "~/Default.aspx?Mid=DriversInfo", "从业人员", "driverinfo");
          companyinfo.ChildItems.Add(carinfo);
        companyinfo.ChildItems.Add(driverinfo);
           newmenu.Items.Add(companyinfo); 
        if (Convert.ToInt32(Session["qx"]) > 2)
        {
            MenuItem datamenu;
            datamenu = CreateMenuItem("信息", "", "信息", "yuzhengdatamenu");
            MenuItem newsdatamenu;
            newsdatamenu = CreateMenuItem("新闻", "~/Default.aspx?MId=NewsInfo", "新闻", "newsdatamenu");
            MenuItem callboarddatamenu;
            callboarddatamenu = CreateMenuItem("公告", "~/Default.aspx?MId=CallBoardInfo", "公告", "callboarddatamenu");
           datamenu.ChildItems.Add(newsdatamenu);
            datamenu.ChildItems.Add(callboarddatamenu);
           newmenu.Items.Add(datamenu);

               }

        if (Convert.ToInt32(Session["qx"]) >3)
        {
            MenuItem systmenu;
            systmenu = CreateMenuItem("系统管理", "", "系统管理", "sysmanager");
            MenuItem sysusermenu;
            sysusermenu = CreateMenuItem("用户管理", "~/Default.aspx?Mid=usermanager", "用户管理", "manageruser");
            MenuItem syscompanymmenu;
            syscompanymmenu = CreateMenuItem("数据字典管理", "~/Default.aspx?Mid=dictmanager", "数据字典管理", "managercompany");
                        systmenu.ChildItems.Add(sysusermenu);
            systmenu.ChildItems.Add(syscompanymmenu);
            newmenu.Items.Add(systmenu);
        }
        MenuItem userinfomenu;
        userinfomenu =  CreateMenuItem("用户信息", "~/Default.aspx?MId=UserInfo", "用户信息", "sysuserinfo");
        newmenu.Items.Add(userinfomenu);

        MenuItem logoutmenu;
        logoutmenu =  CreateMenuItem("退出系统", "~/logout.aspx", "退出系统", "sysout");
        newmenu.Items.Add(logoutmenu);

        this.menuPlaceHolder.Controls.Add(newmenu);

    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值