'Hi Liste -
'
'ich habe auf meiner Seite zwei Buttons,
'wie kann ich denn festlegen, welcher von denen zwei beim
'dr�cken der Return-Taste ausgel�st wird?
'
'Er nimmt n�mlich immer den falschen....
'
http://www.dotnet-hb.de/default.aspx?page=47&id=392
Autor: Sebastian Krampe
Erstelldatum: 07.08.2003
Letzte �nderung: 07.08.2003
Seiten-Aufrufe: 471
Im Normalfall wird bei ASP.NET bei Klick auf die Return-Taste innerhalb
eines Formulars zwar ein Postback ausgel�st, jedoch kein Button.Click-Event
ausgel�st. Oft ist das jedoch nicht so gew�nscht.
Unsere Eingabefelder auf der ASPX:
und hier die HTML-Ansicht:
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:Button id="Button1" runat="server" Text="Button 1"></asp:Button>
<asp:Button id="Button2" runat="server" Text="Button 2"></asp:Button>
Mit Doppelklick in der Designansicht der ASPX k�nnen wir in VisualStudio.NET
automatisch die Button.Click-Methoden der beiden Buttons samt den
zugeh�rigen Eventhandlern erstellen.
Um �berpr�fen zu k�nnen, welches Event ausgel�st wird, wird in den beiden
soeben erstellten Button.Click-Methoden der Textbox ein Inhalt zugewiesen:
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Button Button2;
private void Page_Load(object sender, System.EventArgs e)
{
TextBox1.Text = "";
}
private void Button1_Click(object sender, System.EventArgs e)
{
TextBox1.Text = "Button1 was clicked";
}
private void Button2_Click(object sender, System.EventArgs e)
{
TextBox1.Text = "Button2 was clicked";
}
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
Nach dem Kompilieren werden bei Klick auf unsere Buttons korrekt die Texte
"Button1 was clicked"/"Button2 was clicked" in der TextBox ausgegeben. Bei
Dr�cken der Returntaste jedoch nicht. Lediglich der Postback wird korrekt
ausgef�hrt.
Mit folgender �nderung in unserer Page_Load l�sst sich dieses Manko jedoch
beheben:
private void Page_Load(object sender, System.EventArgs e)
{
TextBox1.Text = "";
RegisterHiddenField("__EVENTTARGET", "Button2");
}
Mit der Methode "RegisterHiddenField( "__EVENTTARGET", Buttonname )" ( z.B
in der Page_Load ) k�nnen wir den Zielbutton definieren - und voil�:
Das Click-Event des von uns angegebenen Button2 wird ausgel�st:
_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net