在asp.net的内容页面中查找母版页内的UnorderedList <ul>控件</ul>

时间:2009-11-19 10:56:33

标签: asp.net controls master-pages find

Hai guys,

我想找到一个UL控件,然后在该UL中找到一个LI,并从内容页面中为其分配一个css类....

<ul id="mainMenu" runat="server" style="width:350px;">
            <li id="mainHome" runat="server"><a title="Home" href="#" class="home">Home</a></li>
            <li id="mainManage" runat="server"><a title="Manage" href="#" class="manage">Manage</a></li>
            <li id="mainEnquiry" runat="server"><a title="Enquiry" href="#" class="enquiry">Enquiry</a></li>
            <li id="mainReport" runat="server"><a title="Report" href="#" class="report">Reports</a></li>

            </ul>

如果用户点击了家,则会将其重定向到users.aspx页面,我想用一种颜色突出显示Home LI ... Plz给我建议......

2 个答案:

答案 0 :(得分:7)

如果我理解正确的话......

如果您的列表在主页面上......

<ul runat="server" id="list">
    <li runat="server" id="home">Home</li>
    <li runat="server" id="news">News</li>
</ul>

...然后你可以在你的内容页面上做到这一点......

Control list = this.Page.Master.FindControl("list");

然后,li对象将成为列表对象中的控件 - 例如list.Controls。或者你可以做......

Control home = this.Page.Master.FindControl("list").FindControl("home");

...找到列表控件的特定控件。

在HTML控件上使用runat =“server”时,服务器端等效对象将为 HtmlGenericControl

如果要将类应用于 LI 标记,则必须将 LI 对象强制转换为 HtmlGenericControl ,然后使用属性属性。例如......

HtmlGenericControl home = (HtmlGenericControl)this.Page.Master.FindControl("list").FindControl("home");

home.Attributes["class"] = "className";

希望有帮助...

答案 1 :(得分:2)

给它一个旋转,让我知道它是否有效。

在CSS中,创建两个类,如:

.normalLink
{
background-color:#fff;
}

.selectedLink
{
background-color:#555;
}

在您的链接中

<li id="mainHome" runat="server"><a title="Home" href="users.aspx" class="<%= SetSelectedLink("users.aspx") %>">Home</a>
<li id="mainManage" runat="server"><a title="Manage" href="#" class="<%= SetSelectedLink("manage.aspx") %>">Manage</a></li>

在您的代码隐藏页面中

如果您正在使用母版页,请在后面的主代码中执行此操作,否则您可以将其粘贴到需要它的后面的每个常规aspx代码中

public string SetSelectedLink(string linkURL)
{
 if(Request.Url.ToLower().Contains(linkURL.ToLower())))
 {
    return "selectedLink";
 }
 else
 {
   return "normalLink";
 }
}

编辑: 这只适用于用适当的网址替换你的href#!