Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net中基于会话值动态添加菜单_C#_Asp.net_Html - Fatal编程技术网

C# 在asp.net中基于会话值动态添加菜单

C# 在asp.net中基于会话值动态添加菜单,c#,asp.net,html,C#,Asp.net,Html,我正在做一个项目,我必须根据用户名显示不同的菜单 我已经在母版页中添加了菜单 代码是 <ul id="ul_myLst" runat="server"> <li><a href="Testimonials.aspx">Testimonial</a></li> <li><a href="About_us.aspx">About Us</

我正在做一个项目,我必须根据用户名显示不同的菜单 我已经在母版页中添加了菜单 代码是

         <ul  id="ul_myLst" runat="server">
               <li><a href="Testimonials.aspx">Testimonial</a></li>

           <li><a href="About_us.aspx">About Us</a></li>
              <li><a href="Registration.aspx">Registartion</a></li>

               <li id="student" runat="server" visible="false">
                   <a href="Profile">profile</a>
                   <ul>
                       <li>
                       <a href="Profile">View profile</a>
                        </li>
                       <li>
                       <a href="Profile">Edit profile</a>
                        </li>
                   </ul>
               </li>

              <li id="abc" runat="server" visible="false" ><a href="Data.aspx">Admin</a></li>
              <li id="Li1" runat="server" visible="false" ><a href="Reports.aspx">Reports</a></li>

           </ul>

此代码没有给我任何错误,但也没有显示所需的输出。

您可以通过以下方式隐藏和显示它:

ul.Style.Add("visibility","visible"); // for showing
ul.Style.Add("display","block");
至于隐藏:

ul.Style.Add("visibilty","hidden"); // for hiding
ul.Style.Add("display","none");    

尝试使用
display
属性:

ul.Style.Add("display", "none");
由于控件具有
id
runat=“server”
,因此还可以使用:

abc.Visible = false;
visible=“false”
根本不涉及元素的样式。这是设置正在操作的控件的
控件.Visible
属性。当该属性设置为false时,控件根本不会呈现到页面上——它只是在最终标记中不存在。因此,在服务器端,您实际上希望在
admin
方法中使用此选项:

ul.Visible = true;
使用此代码

    protected void Page_Load(object sender, EventArgs e)
    {

        if (!string.IsNullOrEmpty(Session["UserName"] as string))
        {

            admin();
        }

    }
    private void admin()
    {
        if (Session["UserName"].ToString() == "admin")
        {
            this.Page.FindControl("abc").Visible = true;
        }
    }
如果在母版页中使用,则使用此代码

private void admin()
    {
        if (Session["UserName"].ToString() == "admin")
        {
            this.Master.FindControl("abc").Visible = true;
        }
    }
谢谢

private void admin()
    {
        if (Session["UserName"].ToString() == "admin")
        {
            this.Master.FindControl("abc").Visible = true;
        }
    }