button feuern click event zweimal

8

Es scheint, dass manchmal (aber nicht immer) mein Button Click Event zweimal ausgelöst wird. Die Tatsache, dass es manchmal vorkommt, aber nicht immer, verwirrt mich sehr. Hier ist mein Knopf:

%Vor%     
user517406 18.04.2011, 10:39
quelle

11 Antworten

13

Ich hatte das gleiche Problem, und ich brauchte eine Weile, um es herauszufinden! Wenn Sie der Schaltfläche type="button" hinzufügen, scheint das Problem zu beheben.

    
Brandsdal 12.12.2012 23:22
quelle
5

Ich bin gerade auf dasselbe Problem gestoßen und wollte darauf hinweisen, dass das Entfernen der "Handles btnSave.Click" von Ihrem Event verhindert, dass es zweimal aufgerufen wird. Verwenden Sie dies zum Beispiel im folgenden Code:

%Vor%

Statt dessen:

%Vor%     
Mark B 16.09.2011 15:49
quelle
3

Verwenden Sie stattdessen eine native ASP.NET-Schaltfläche.

%Vor%     
Town 18.04.2011 10:44
quelle
2

Sieht nach dem Problem mit der Verkabelung von Event-Handlern aus. Ссылка

Versuchen Sie, ob Sie Event-Handler in Ihrem Backend haben können. Auch könnte das Problem wegen des Typs="Submit" sein. Überprüfen Sie, ob das Ändern auf nur Button das Problem behebt.

    
Sandeep G B 18.04.2011 10:44
quelle
2

Wenn Sie Code verwenden, verwenden Sie OnClick nicht im ASP-Tag <button id="btnSave" name="btnSave" type="submit" style="font-size:11px;font-family:Verdana;font-weight:bold;" runat="server">Save</button>

    
Maysam 18.04.2011 10:46
quelle
1

Ein möglicher Grund:
Überprüfen Sie Ihre Button-Deklaration in Ihrer ASPX-Quelle. Wenn Sie ein 'runat=server' und onclick="button1_click" haben und Sie einen Event-Handler in Ihrem Code-Behind haben (zB .aspx.vb), Das Ereignis wird zweimal ausgelöst. Hier ist ein Beispiel in xxx.aspx:

%Vor%

Diese Deklaration sollte sein:

%Vor%

Viel Glück!

    
Louis plh 10.10.2014 06:36
quelle
0

Ich denke, ich habe gerade eine Lösung dafür gefunden. Entferne name="btnSave" oder ändere es in "btnSave1" . Es wird funktionieren.

    
shailesh 12.07.2016 11:51
quelle
0

Der richtige Weg (auf der ASP.NET-Webformularseite), wie bereits von anderen Mitwirkenden hervorgehoben, besteht darin, dem Element das Attribut type="button" hinzuzufügen und zu verknüpfen ein onserverclick Event-Delegate-Handler.

Zum Beispiel:

%Vor%

Hoffe, das hilft.

    
Manoj Kumar Sharma 02.06.2016 13:38
quelle
0

Ich hatte dasselbe Problem, aber eine ganz andere Ursache. Ich habe die Eigenschaft container panel defaultbutton so eingerichtet, dass die Schaltfläche zweimal ausgelöst wird. Nach dem Entfernen der Eigenschaft " DefaultButton " aus dem Asp: Panel ist das Problem gelöst.

    
HGMamaci 27.01.2017 09:14
quelle
0

Ich musste mich einfach noch einmal in den ASPX der alten Schule vertiefen und habe dieses Problem gefunden.

Mein Formular wurde so eingerichtet.

%Vor%

Der Code dahinter war

%Vor%

Die Antwort für mich war, das DefaultButton-Attribut aus dem Panel zu entfernen und

hinzuzufügen %Vor%

zum LinkButton.

    
David Hyde 16.02.2017 11:16
quelle
-2

Wenn Sie asp.net verwenden, verwenden Sie einfach asp: button ..... es ist sauber und einfach. Egal, welche Rechtfertigung ich im Netz lese, es macht keinen Sinn, dass der Server-Side-Handler zweimal aufgerufen werden sollte. Wenn ich type="button" hinzufüge, ist das Problem gelöst. Das Formular wird jedoch nicht gesendet, wenn ich die Eingabetaste drücke. Das ist also ein weiteres Problem, das gelöst werden muss. Die Verwendung der asp: -Schaltfläche kümmert sich um all dies.

    
Kshitij Upadhyay 04.05.2015 06:58
quelle

Tags und Links