C#这个参考主页面代码有什么问题?

时间:2013-01-02 07:34:24

标签: c#-4.0 coding-style master-pages

我需要将母版页引用到内容页面,以便更改主页面引用的主页的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;

当然它不起作用。请帮帮我。

1 个答案:

答案 0 :(得分:0)

  1. 将runat =“server”添加到您的td标记
  2. FindControl不是递归的。 MSDN说“只有当控件直接包含在指定的容器中时,此方法才会找到控件;也就是说,该方法不会在控件中的控件层次结构中进行搜索”
  3. 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;
    }