0

我需要将母版页引用到内容页,以更改引用到母版页的主页的 css 样式。这是我需要更改的控件,它位于母版页上。

<table cellpadding="0" cellspacing="14" border="0" class="navigationButtons">
      <tr>
          <td id="HomeLink" runat="server" align="center"><a href="Home.aspx"><br />Home</a></td>
          <td id="AboutLink" runat="server" align="center"><a href="About.aspx"><br />About us</a></td>
          <td id="ColLink" runat="server" align="center"><a href="Col.aspx"><br />Collections</a></td>
          <td id="RegLink" runat="server" align="center"><a href="Reg.aspx"><br />Register</a></td>
     </tr>
</table>

我需要更改<td>每个内容页面的样式。我知道我应该首先参考主页上的母版页。但我不知道如何使用FindControl. 这就是我在服务器端所拥有的。

HtmlGenericControl HomeLink = null;
HomeLink = (HtmlGenericControl)Master.FindControl("HomeLink");
HomeLink.Style.Add["Background-color"] = blue;

当然它不工作。请帮帮我。

4

1 回答 1

0
  1. 将 runat="server" 添加到您的 td 标签
  2. FindControl 不是递归的。MSDN 说“只有当控件直接包含在指定容器中时,此方法才会找到控件;也就是说,该方法不会在控件内的控件层次结构中进行搜索”

http://msdn.microsoft.com/en-us/library/486wc64h.aspx

public static Control FindControl(Control control, string id)
{
     if (control.Id == id)
         return control;

     foreach(Control c in control.Controls)
     {
         Control res = FindControl(c, id);
         if (res != null)
              return res;
     }

     return null;
}
于 2013-01-02T07:45:02.880 回答