如何使用C#以编程方式将活动样式添加到头控件链接



我的头控件中有一个用于导航的无序列表。在我的其他每一页上都会调用页眉控件。

<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";

更具体可能需要更多关于这些数据结构和用户控件内部工作的信息。

最新更新