我正在开展一个项目,我必须根据用户名显示不同的菜单 我在母版页中添加了菜单 代码是
<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>
我想在用户登录时显示三个隐藏的
这是我的.cs代码
protected void Page_Load(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Session["UserName"] as string))
{
admin();
}
}
private void admin()
{
if (Session["UserName"].ToString() == "admin")
{
HtmlGenericControl ul = (HtmlGenericControl)(this.FindControl("abc"));
ul.Style["visibility"] = "visible";
}
}
此代码没有给我任何错误,但它也没有向我显示所需的输出..
答案 0 :(得分:0)
您可以隐藏并以这种方式显示:
ul.Style.Add("visibility","visible"); // for showing
ul.Style.Add("display","block");
并隐藏:
ul.Style.Add("visibilty","hidden"); // for hiding
ul.Style.Add("display","none");
答案 1 :(得分:0)
尝试使用display
属性:
ul.Style.Add("display", "none");
由于您的控件有id
和runat="server"
,您还可以使用:
abc.Visible = false;
答案 2 :(得分:0)
visible="false"
根本不触及元素的样式。这是设置您正在操作的控件的Control.Visible
属性。当此属性设置为false时,控件不会呈现给页面 - 它在最终标记中不存在。因此,在服务器端,您实际上需要admin
方法:
ul.Visible = true;
答案 3 :(得分:0)
使用此代码
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;
}
}
感谢