2009-07-22 31 views
1

Ich habe ein UserControl, das einige Funktionen bietet (lädt und zeigt die Informationen eines Clients), und ich möchte dieses UserControl erweitern. Einige Formulare erfordern das einfache alte Benutzersteuerelement, während andere Formulare einige zusätzliche Felder erfordern. Wie kann ich von dem vorhandenen Benutzersteuerelement erben, die vorhandenen Felder verwalten, aber auch neue Felder hinzufügen?UserControl erbt von einem anderen UserControl

Ich mag die Art, wie MasterPages funktioniert, wo Sie Platzhalter definieren, und dann füllen die Inhaltsseiten nur diese Platzhalter mit extra Inhalt. Ist das mit UserControls möglich? Vielen Dank!

Antwort

1

Ich beendete die Verwendung verschachtelter MasterPages als meine UserControls (wie sie sowieso von UserControl erben). Dann rufe ich das einfach auf. LoadControl ("~/mp.master") und voila, ich habe UserControls mit voller Design-Time-Unterstützung verschachtelt. :)

1

Vielleicht könnten Sie ein paar ASP: PlaceHolders (denken Sie an "Zonen") in Ihrem UserControl definieren und diese über public (oder geschützt, wenn Sie nur die geerbte Klasse in der Lage sein möchten) ändern. Auf diese Weise können Sie bei Bedarf Untersteuerungen hinzufügen.

protected PlaceHolder TopZone { 
    get { return plhTop; } 
} 


protected PlaceHolder BottomZone { 
    get { return plhBottom; } 
} 

Von einem der geerbten Usercontrols:

Label lblTest = new Label { Text = "Hello World!" }; 
TopZone.Controls.Add(lblTest); 

Es ist ein verrry einfaches Beispiel, ich hoffe, dass es für Sie von Nutzen ist.

+0

Dies ist ziemlich ähnlich zu der Methode, die ich gerade verwende, aber es bietet nicht das gleiche Maß an Funktionalität, die MasterPages bietet, und es war schwierig zu pflegen. :( –

+0

Das UserControl ist ein Steuerelement (Container) selbst, dem Sie einfach Steuerelemente hinzufügen könnten. Aber vielleicht verlieren Sie jetzt den Punkt ein wenig mit einem UserControl. – Zyphrax

Verwandte Themen