cool. das wirds sein. probier es gleich mal aus.

danke!!!

----- Original Message -----
From: Rene Drescher-Hackel
To:  <asp.net@glengamoi.com>
Sent: Tue, 24 May 2005 10:21:03 +0200
Subject: AW: [Asp.net] Button

 
'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:
Asp.net@glengamoi.com
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an