我的头控件中有一个用于导航的无序列表。在我的其他每一页上都会调用页眉控件。
<ul>
<li class="active">Home</li>
<li>About</li>
<li>Store</li>
</ul>
加载活动类时,以编程方式将其更改为"关于"页面的最佳方法是什么?
我在这个项目中使用C#。
只需向用户控件添加一个公共属性。
我假设在初始化页面时,这些数据在数据结构中。属性类型应该是用于标识该数据的适当类型。然后,当呈现页面时,控件应该考虑属性的值来呈现数据。
这可能涉及为每个列表项设置runat=server
,然后为相应的列表项设置CssClass
属性。我个人采取了一种不同的方法,编写原始代码来生成HTML。我也可以考虑其他的选择。
第一种方法的一个例子可能看起来像这样(未经测试):
ascx
<ul>
<li id="HomeList" runat="server">Home</li>
<li id="AboutList" runat="server">About</li>
<li id="StoreList" runat="server">Store</li>
</ul>
用户控制cs
public string ActiveItem { get; set; }
protected void Page_PreRender(object sender, EventArgs e)
{
if (ActiveItem != null)
{
if (ActiveItem == "Home")
HomeList.CssClass = "active";
if (ActiveItem == "About")
HomeAbout.CssClass = "active";
if (ActiveItem == "Store")
HomeStore.CssClass = "active";
}
}
页面cs
UserControl1.ActiveItem = "Home";
更具体可能需要更多关于这些数据结构和用户控件内部工作的信息。