Hi Thomas
Also das mit dem Event erstellen, aufrufen und verarbeiten ist
eigentlich ganz einfach. Lediglich mein Visual Studio hat sich ab und an
mal etwas verselbst�ndigt, sodass ich erst ein wenig rumprobieren
musste.
___________________Usercontrol__________________________________________
__________________________________________________
Als erstes erstellst du in deinem Usercontrol ein Event �hnlich wie es
auch bei den normales ASP Controls ist. In meinem Fall nennt sich dieses
Event Bclick und ist vom Typ CommandEventHandler. Hier ist wichtig, ob
du Parameter �bergeben m�chtest oder ob das nicht erforderlich ist. Wenn
keine Parameter �bergeben werden sollen, dann kannst du auch einfach den
Typ EventHandler w�hlen. Hast du das Event erstellt, dann musst du das
Event aufrufen. Das kannst du zum einen machen, indem du dir eine
Funktion zum Aufrufen schreibst, bei mir OnBClick(...). Dieser Funktion
�bergibst du die Eventargumente und falls du ein Event vom Tpy
CommandEventHandler gew�hlt hast, dann auch gleich die Parameter.
Wichtig, in diesem Fall kannst du nur 2 Werte �bergeben, da das Event
nur 2 Werte transportieren kann. Gen�gt dir das nicht, musst du einen
eigenen Eventhandler schreiben, was mir jedoch zu umst�ndlich war, da
ich nur ein Argument �bergeben muss.
//Event Initialisieren
public event CommandEventHandler BClick;
//Event feuern, also aktivieren
protected void OnBClick(EventArgs e,string bvalue)
{
if (BClick != null)
{
BClick(this, new CommandEventArgs(bvalue, null));
}
}
Anschlie�end tr�gst du dein Event noch bei den Controls ein, bei denen
es aufgerufen werden soll. Bei mir ist das ein Button, den ich einfach
im Usercontrol klicken m�chte und anschlie�end in der ASPX Seite
verarbeiten m�chte.
//Button namens DB_Technik mit ClickEvent im Usercontrol, der seinen
//Namen in �bergeordnete ASPX-Seite �bertragen soll
private void DB_Technik_Click(object sender, System.EventArgs e)
{
OnBClick(e,"DB_Technik");
}
___________________ASPX-Seite___________________________________________
_______________________________________________
In deiner ASPX-Seite erstellst du zu allererst einmal eine Instanz
deines Usercontrols. In meinem Fall hei�t meine Usercontrol-Class
"Lbutton" und meine Instanz habe ich "Navigationsleiste" genannt.
Hast du die Instanz erstellt, musst du die Eigentliche Eventbehandlung
schreiben. Und zwar geht das genau so, als w�re dein Usercontrol ein
simpler Button. Nur das mein Event Bclick anstelle von Click hei�t. Als
Werte �bergibst du den Sender vom Typ Object, wie auch bei Buttons und
als 2. Parameter �bergibst du das Eventargument. Hier ist wieder
wichtig, ohne zu �bergebende Parameter nimmst du den Typ EventArgs, mit
Parametern den Typ CommandEventArgs. Anschlie�end kannst du festlegen,
was denn bei Eintritt dieses Ereignisses passieren soll. Die �bergebenen
Argumente liest du �ber e.CommandName und e.CommandArgument aus. Ich
habe wie gesagt nur den ersten Parameter genutzt. Diesen kannst du dann
in deiner Ereignisbehandlungsfunktion verwenden um zum Beispiel das
Object zu bestimmen, welches in deinem Usercontrol bet�tigt wurde, oder
aber um die Auswahl eines Dropdownfeldes zu �bergeben.
private void Navigationsleiste_BClick(object sender, CommandEventArgs e)
{
switch (e.CommandName)
{
case "DB_Technik":...; //hier kannst du jetzt
auch ein Instanz eines weiteren Usercontrols zum Beispiel
break; //einem Platzhalter zur
Laufzeit hinzuf�gen. So mach ich das auch.
default : break;
}
}
Nun hast du es fast geschafft. Fehlt nur doch dein Ereignis auch zu
registrieren. Das findet im Initialisierungsteil deiner ASPX-Seite statt
und sieht wie folgt aus. Falls du keine Parameter�bergabe ben�tigst,
dann ist dein Event wieder vom Typ Eventhandler, an sonsten wie folgt:
Navigationsleiste.BClick += new
CommandEventHandler(Navigationsleiste_BClick);
Das war eigentlich alles. Damit kannst du 2 getrennte Strings vom
Usercontrol mit in die ASPX-Seite sicher �bergeben und dort
weiterverarbeiten.
Hoffe dir eventuell weitergeholfen zu haben. Vielleicht hilft es ja auch
noch jemand anderem, auch wenn die meisten hier Profis zu sein scheinen.
Tsch�ssi
Jirko
_______________________________________________
Asp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net