2012-06-21 4 views
6

Wenn die Masterseite ein Label mit der ID label1 aufweist, kann ich diese ID auf der Inhaltsseite steuern. Die ID wird nicht weitergegeben, also kann ich sie nicht von Natur aus kontrollieren. . Zum Beispiel, wenn ich eine Kontrolle mit der ID contentLabel habe ich es Code, indem nur die Eingabe contentLabel zugreifen kann (was auch immer ich tue)ID des Masterseitenobjekts in Inhaltsseite abrufen

+0

Ich habe ein Kopfgeld angefangen, weil ich neugierig bin, ob es da draußen eine bessere Antwort gibt. Meine Antwort erfordert mehr Schritte, als ich möchte, und es ist eine Art Pita über mehrere Inhaltsseiten hinweg. – canon

+0

@antisanity Was ist ein "Pita"? – MikeTeeVee

+0

@MikeTeeVee Schmerz in der ... _butt_. Es scheint nur die Auswahl einer ** MasterPage ** sollte den ** MasterType ** für Sie festlegen. – canon

Antwort

10

Hier sind zwei Möglichkeiten:

: Stellen Sie sicher, dass Ihr Inhalt aspx MasterType gibt:

<%@ MasterType VirtualPath="~/yourMasterPageName.master" %> 

Dadurch Ihre Inhalte Seite wissen lässt, was von Ihrem Master-Seite erwarten und gibt Ihnen IntelliSense. So können Sie jetzt die Text-Eigenschaft des Labels auf dem Code-Behind der Master-Seite anzeigen.

public string ContentLabelText 
{ 
    get { return contentLabel.Text; } 
    set { contentLabel.Text = value; } 
} 

Dann können Sie es in Ihrem Inhalt der Seite Code-Behind-Seite ala Zugang:

Master.ContentLabelText = "hah!"; 

oder : Sie können das Etikett über FindControl() wie so Zugang:

var contentLabel = Master.FindControl("contentLabel") as Label; 
+0

gibt es eine bessere Praxis oder ist das der einzige Weg? nur neugierig – auwall12688

+0

Nicht dass ich mir dessen bewusst bin ... also, ich werde nach anderen Antworten Ausschau halten. – canon

+0

Danke, es funktioniert perfekt. Ich bin neu in .NET. Für eine Weile programmiert, aber nie in .NET oder Web-Entwicklung. – auwall12688

Verwandte Themen