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

时间:2013-08-28 16:36:22

标签: c# asp.net webforms

我的标题控件中有一个无序的导航列表。在我的每个其他页面上调用标题控件。

<ul>
    <li class="active">Home</li>
    <li>About</li>
    <li>Store</li>
</ul>

加载时,以编程方式将活动类更改为“关于”页面的最佳方法是什么?

我在这个项目中使用C#。

1 个答案:

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

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