使用c动态更改html控件样式
本文关键字:html 控件 样式 动态 使用 | 更新日期: 2023-09-27 18:27:46
我想创建一个网站,如果管理员通过admin.aspx
登录我想在菜单列表中再添加一个导航。我的菜单列表由<ul>...<li>
组成,即html控件那么我如何在主页菜单中动态添加新的
style { 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;
}
}
我可以想出两种可能的简单方法来实现这一点:
1.设置web控件Visible
属性
在主页面代码后面(MasterPage.master.cs
)中,将此行添加到OnLoad
或Page_Load
方法中:
var liAdmin = (HtmlGenericControl)Page.FindControl("abc");
liAdmin.Visible = User.IsInRole("Admin");
在MasterPage.master
中,将runat="server"
添加到<li>
标记中。
2.程序化添加<li>
在MasterPage.master
中,将runat="server"
添加到您的<ul>
标记中。
并且在主页面后面的代码添加到OnLoad
或Page_Load
:
if(User.IsInRole("Admin"))
{
var ulMenu = (HtmlGenericControl)Page.FindControl("ul_myLst");
var liAdmin = new HtmlGenericControl("li");
var a = new HtmlAnchor();
a.HRef = "OurFaculty.aspx";
a.InnerText = "Admin";
liAdmin.Controls.Add(a);
ulMenu.Controls.Add(liAdmin);
}
您必须使用会话并检查主页面顶部是否存在会话值。当您返回母版页时,它会再次检查会话值,然后您可以编写css代码将管理菜单设置为可见。
从技术上讲,循序渐进的程序:
- 在第二页上创建会话(default.aspx)
- 在主页面顶部检查会话值:设置if条件,如果会话值存在,则编写代码在其中显示管理菜单
- 创建注销页面以使会话无效
您可以在此处阅读有关ASP会话的更多信息:http://www.w3schools.com/asp/asp_sessions.asp