我想创建一个网站,如果管理员通过admin.aspx登录
我想在菜单列表中添加一个导航.
我的菜单列表由< ul> …< li>组成.即
HTML控件
那么如何在我的母版页面菜单中动态添加新的>
要不然
最初我添加管理菜单并应用样式{visibility:hidden}
登录成功后,我想将其更改为{visibility:visible}
这是我的主页面代码
<ul id="ul_myLst" runat="server">
<li><a href="Testimonials.aspx">Testimonial</a>
</li>
<li><a href="#fakelink">Contact Us</a>
</li>
<li><a href="#fakelink">About Us</a>
</li>
<li><a href="Registration.aspx">Registartion</a>
</li>
<li><a href="OurFaculty.aspx">Our Faculty</a>
</li>
<li id="abc" runat="server" style="visibility:hidden">
<a href="OurFaculty.aspx">Admin</a>
</li>
</ul>
这是我的Default.aspx代码
if (f.pass.Equals(txtpass.Value)) {
HtmlGenericControl ul = (HtmlGenericControl)(this.Master.FindControl("abc"));
//ul.Attributes["class"] = "admin-p";
ul.Style.Remove("visibility");
ul.Style["visibility"] = "visible";
Response.Redirect("Index.aspx");
}
这段代码工作正常,但当我再次回到index.aspx时,管理菜单会自动隐藏
最佳答案 从你的代码,我猜这行:
if(f.pass.Equals(txtpass.Value))
是登录过程中某种形式的已保存值.
如果是这种情况并且您有一些隐藏的输入字段或其他内容 – 则每次页面加载()时都会调用设置Admin菜单的方法.根据您在网站上工作的记忆登录值,更改“if”代码. (会话或视图状态或cookie)
例:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
setAdminMenu();
}
}
private void setAdminMenu()
{
if(f.pass.Equals(txtpass.Value))
{
abc.Visibility = visible;
}
}