ASP.Net: Benutzerkontrolle mit Inhaltsbereich, es ist klar möglich, aber ich brauche einige Details

8

Ich habe zwei Vorschläge für meine ursprüngliche Frage gesehen, ob es möglich ist, einen Inhaltsbereich in einem Benutzersteuerelement zu definieren, und es gibt einige hilfreiche Vorschläge, d. h.

Inhalte an die ASP.NET-Benutzersteuerung übergeben

und

ASP.NET User Control Inhalt

Nun, ich mag die Theorie der letzteren besser als die erstere nur aus ästhetischen Gründen. Es scheint mir sinnvoller zu sein, aber das Beispiel verwendet zwei Variablen content und templateContent, die der Beantworter in seinem Beispielcode nicht definiert hat. Ohne diese Details habe ich festgestellt, dass das Beispiel nicht funktioniert. Ich denke, sie sind Eigenschaften der Kontrolle? Oder so etwas?

BEARBEITEN - DETAILS: Was ich versuche zu tun

Ich brauche ein ASP.Net-Benutzersteuerelement, das Inhalt in einem Panel innerhalb eines Platzhalters verbirgt und nach der Eingabe eines Codes in einem sichtbaren Panel fragt.

Im Wesentlichen wird der Benutzer seinen Code in die bereitgestellte Textbox in Panel A eingeben und abschicken, er wird überprüft und, wenn er gültig ist, wird Panel B und der gesperrte Inhalt angezeigt.

Ich habe einen Test gemacht, bei dem der Inhalt in Panel B hart codiert wurde, aber sobald ich den Inhalt zu einer generischen Eingabe machen muss, schlägt er fehl. Wenn es nur Text oder etwas wäre, dann könnte ich es zu einer Eigenschaft des Steuerelements machen, aber da es tatsächlich ein anderes Benutzersteuerelement ist, habe ich Schwierigkeiten, dieses in das "versteckte" Feld zu bekommen.

Jede andere praktikable Lösung ist ebenfalls willkommen.

EDIT NOTE: Die Lösung, die ich versuche, dies in 2.0 zu implementieren, fand ich eine 3.5 Lösung, die ich nicht verwenden kann.

Das vorherige Beispiel scheint praktikabel, aber ich würde es vorziehen, mit letzterem zu gehen, wenn jemand die Lücken für mich ausfüllen könnte.

Danke.

    
bert 27.04.2010, 09:21
quelle

2 Antworten

22

Okay, das ist beunruhigend einfach, aber viele der Tutorials im Web, die über diese Art von Dingen reden, treiben extravagante Dinge an, die die Kontrolle erfordern, um ListItems oder ähnliches zu parsen.

Diese Lösung dient also nur dazu, ein Steuerelement zu erstellen, das aus irgendeinem Grund einen Platzhalter enthält, der etwas enthalten kann (so etwas wie ein Inhaltsbereich auf einer Masterseite). In diesem Fall liegt es daran, dass das Panel, das den Platzhalter enthält, ausgeblendet wird, bis die entsprechenden Eingabeaktionen in einem anderen Panel stattgefunden haben.

Zuerst müssen Sie Folgendes hinzufügen:

%Vor%

genau über dem Teil des Steuerelements, der wie folgt aussieht:

%Vor%

dann in den Control-Scoped-Deklarationen am Kopf des Controls, das Sie also deklarieren wollen:

%Vor%

Schließlich müssen Sie den Inhalt wie folgt in den Platzhalter einfügen:

%Vor%

Diese letzte Zeile wird in das Page_Init-Ereignis eingefügt. Als Referenz "phContent" ist der Name des Platzhalters, an dem der Inhalt angezeigt werden soll, wie folgt:

%Vor%

Am Frontend sieht die resultierende Implementierung folgendermaßen aus:

%Vor%

Beachten Sie, dass ich vermute, dass das, was zwischen den Inhalts-Tags liegt, ein Stamm-Steuerelement ist. Dies liegt daran, dass ich dort ein anderes Benutzersteuerelement verschachtelt habe. Ich stelle mir vor, wenn Sie den gewünschten Inhalt in einem Panel oder Platzhalter platzieren, sollte es in Ordnung sein.

    
bert 27.04.2010, 12:59
quelle
0

Sie können auch lesen: Vorgehensweise: Erstellen von Templated ASP.NET Benutzersteuerelemente ". Wirklich hilfreich.

    
dnk.nitro 05.02.2011 03:45
quelle

Tags und Links