2010-09-15 10 views
11

Ich muss eine Control in einer ASPX-Seite finden, die an eine Masterseite gebunden ist.Finden Sie ein Steuerelement auf einer Seite mit einer Masterseite

Die Masterseite enthält:

<asp:ContentPlaceHolder ID="MainContent" runat="server"/>    

Der Inhalt Seite enthält:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server"> 
</asp:Content> 

ich eine Table mit IDformtable als Kind von Content2 hinzugefügt.

Ich habe versucht, den folgenden Code zu verwenden, um die Table zuzugreifen, aber der Code gibt null:

protected void Ok_Click(object sender, EventArgs e) 
{ 
    Table tblForm = this.FindControl("MainContent").FindControl("formtable") as Table;     
} 

Wie kann ich die Table zugreifen?

Antwort

25

diese

Table tblForm = this.Master.FindControl("MainContent").FindControl("formtable") as Table; 

Kasse Versuchen Sie, diese Control ID Naming in Content Pages für mehr Details manchmal

0

In welchem ​​Kontext befinden Sie sich, wenn Sie dies versuchen? Bist du im Codebehind der einzelnen Seite?

Wenn du es bist sollte es Content1.FindControl("formtable") as Table sein und das wäre es.

0

Arbeiten mit Findcontrol() Ursache Komplikationen. Es ist einfacher, eine öffentliche Eigenschaft für dieses Steuerelement in der Masterseite zu definieren und dann auf die Steuerung über die Eigenschaft zuzugreifen.

Sie diese Zeile in der Kinder Seite hinzufügen sollte:

<%@ MasterType VirtualPath="~/MasterPage.master" %> 
Verwandte Themen