我的标题控件中有一个无序的导航列表。在我的每个其他页面上调用标题控件。
<ul>
<li class="active">Home</li>
<li>About</li>
<li>Store</li>
</ul>
加载时,以编程方式将活动类更改为“关于”页面的最佳方法是什么?
我在这个项目中使用C#。
答案 0 :(得分:3)
只需向用户控件添加公共属性即可。
我认为在您的页面初始化时,此数据处于数据结构中。属性类型应该是用于标识该数据的适当类型。然后,当呈现页面时,控件应该考虑属性的值来考虑数据的呈现方式。
这可能涉及为每个列表项设置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";
}
}
Page cs
UserControl1.ActiveItem = "Home";
更具体地说,可能需要有关这些数据结构和用户控件内部工作的更多信息。