2013-01-02 30 views
0

我需要引用母版頁到內容頁面,以便更改引用母版頁的主頁的CSS樣式。這是我的控制,我需要改變它,它位於母版頁上。C#這個參考母版頁代碼有什麼錯誤?

<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

你不錯過td上的runat =「server」屬性嗎?另外,您在findcontrol調用中拼寫了id。 –

回答

0
  1. 添加RUNAT = 「服務器」,以您的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; 
} 
+0

我可以使用這個嗎? WebControl控件=(WebControl)FindControl(「HomeLink」); control.Style [「Background-Color」] = blue; – 7alhashmi