2009-06-23 8 views
0

Gibt es in .NET 2.0 eine Möglichkeit, eine Klasse als Klassenfactory für Benutzersteuerelemente zu verwenden? Mit anderen Worten, 1 Super, der dort sitzt und wenn ich ein Benutzersteuerelement möchte, erstellt es es und gibt es mir zurück. Es scheint, dass es den ASP-Namensraum braucht, den ich nicht scheinen kann, um es zu beziehen.Gibt es eine Möglichkeit, eine Klasse als Klassenfactory für Benutzersteuerelemente zu verwenden?

Ich habe eine masterpage mit einem Platzhalter. Abhängig von der Benutzerauthentifizierung möchte ich das Benutzersteuerelement dynamisch laden. Zum Beispiel könnte es ein Suchsteuerelement sein, wenn sie authentifiziert sind, es könnte sich um eine Anzeige handeln, wenn sie nicht angemeldet sind. Ich kann sie dynamisch laden. Aber mein Plan war, eine einzige Klasse zu benutzen, um das zu kontrollieren. Im Moment muss ich sie direkt auf den Masterpage-Code laden. Es gibt keinen Code, der in der Klasse angezeigt werden kann, da ich nicht auf die Benutzersteuerelemente verweisen kann. Daher komme ich nicht weit.

+0

Mehrere Möglichkeiten. Ihr Problem ist wahrscheinlich eher mit der grundlegenden Objektorientierung als mit ASP oder .NET 2.0. Warum fügen Sie nicht einen bearbeiteten Beispielcode hinzu, damit wir sehen können, wo Sie falsch liegen? –

Antwort

1

Benutzersteuerelemente sind einfache Abschnitte des Seiteninhalts. Sie sollen nicht schick sein. Möglicherweise finden Sie mehr Probleme mit Benutzersteuerelementen, als es wert ist.

0

Sie können dynamisch Steuerelemente erstellen (ich habe es hauptsächlich für Sharepoint-Sites getan und gelegentlich CreateChildControls auf einer Seite überladen), aber was Sie daraus ziehen, ist ein Haufen von Seitenlebenszyklus-Kopfschmerzen.

Sie können die beste Lösung finden, separate Seiten zu verwenden (mit dem Master für Layout), plus URL-Trimmen.

So, dass die Suche auf authentifizierte Benutzer in web.config beschränkt ist. Also werden die ungewaschenen Massen zu \ Login (die die Anzeige enthält) weitergeleitet, wenn sie versuchen, zur Suche zu gehen.

0

Ein paar Dinge, vielleicht etwas ist hilfreich:) ...

  1. Ich glaube, Sie für einen ein LoginView Class suchen werden. Es wird ein separates Steuerelement oder ein beliebiges HTML basierend auf dem Authentifizierungsstatus oder sogar Rollen angezeigt. Entschuldigung, wenn ich dir etwas erzähle, das du bereits weißt.

  2. Ersetzen Sie LoginView-Funktionalität, die scheint, was Sie mir beschreiben, wäre ein Server-Steuerelement viel geeigneter. Speziell eine Composite Server Control.

  3. Die dynamische Ladefunktion kann durch Hinzufügen von ASP.Net AJAX zum Mix erfolgen. Ihr Verbundsteuerelement kann beispielsweise auf einem ASP.Net AJAX UpdatePanel basieren. Sie können Ihr Server-Steuerelement auch auf Basisklasse ScriptControl basieren.

  4. Auch wenn Sie dynamisch mit AJAX laden können, würde ich empfehlen, etwas zu verwenden, das bereits für Sie erledigt ist. Das heißt, erstellen Sie eine Web Part Server Control

Verwandte Themen