C # - ASP.NET Button-Klick-Ereignis funktioniert nicht

7

Ich habe eine ASP.NET (C #) Seite mit einigen Steuerelementen von Drittanbietern, einigen Ajaxy-Sachen und einigen normalen ASP.NET Button-Steuerelementen.

Die Klickereignisse der Schaltfläche werden beim Klicken nicht ausgelöst.

Durch Doppelklicken auf die Schaltfläche im Entwurfsmodus in VS 2008 wird auf den Code-Behind umgeschaltet, aber der Ereignishandler wird nicht erstellt.

Das manuelle Erstellen des Ereignishandlers hilft nicht.

Die ganze Seite ist zu groß, um sie hier einzubeziehen, aber das ist das oberste Bit:

%Vor%

... und meine Deklaration auf der Seite:

%Vor%

... und der Code-Behind:

%Vor%

Irgendwelche Ideen? könnte es der Ajax oder etwas sein? Vielleicht die "obout" Gitterkontrolle von Drittanbietern?

Aktualisierung:
Ich habe das vor ein oder zwei Monaten behoben, also bin ich auf diese Frage zurückgekommen, um sie für die Nachwelt zu beantworten, aber ich konnte mich nicht genau erinnern, wie ich sie repariert habe! (Verfluchen Sie, Alter!) Ich hatte einige begrenzte Erfolge, indem ich einige der ASP.NET AJAX-Steuerelemente durch jQuery UI-Steuerelemente ersetzte, aber ich denke, die wirkliche Lösung war, dass eine der Eigenschaften in einem der Tags auf ein Steuerelement zeigte das gab es nicht mehr.

Wenn Sie in derselben Situation sind, versuchen Sie es und lassen Sie mich wissen, was in den Kommentaren funktioniert, und ich werde die richtige Antwort posten.

    
MGOwen 16.09.2009, 01:12
quelle

9 Antworten

15

Überprüfen Sie während des Debuggens die CausesValidation-Eigenschaft Ihrer Schaltfläche. Aus irgendeinem Grund hatte eine der Seiten einer Schaltfläche standardmäßig den Wert "True". Wenn ich es explizit auf "False" gesetzt habe, hat alles funktioniert.

    
Charlie A 20.09.2011 19:43
quelle
9

Ich weiß, dass dies jetzt gelöst werden sollte, aber nur um zu teilen - ich hatte gerade ein ähnliches Problem. In meinem Fall war das Problem, dass ich eine RequiredFieldValidator in einer Seite hatte, die nicht sichtbar war, weil sie Teil eines Popups war. Dieser Validator sollte nur aufgerufen werden, wenn man auf den entsprechenden "Speichern" -Button klickt, aber da ich kein ValidationGroup gesetzt habe, würde es verhindern, dass die Seite für irgendeine angeklickte Schaltfläche übermittelt wird. Durch das Hinzufügen von ValidationGroup zur rechten Schaltfläche wurde das Problem behoben.

    
Felipe Castro 25.07.2012 00:12
quelle
3

Erfahren Sie das gleiche Problem in letzter Zeit - Ursache wurde schließlich festgestellt, dass der Button durch eine JavaScript-Methode onbeforesubmit deaktiviert wurde (entworfen, um mehrere Übermittlungen zu verhindern), und leider Web-Formulare scheint den aktivierten Zustand der Schaltfläche zu überprüfen, bevor es die ermöglicht Codebehind-Ereignis zum Auslösen.

    
annakata 04.05.2011 08:11
quelle
3

Ich hatte dieses Problem gerade jetzt und es wurde von einem anderen Steuerelement mit einem AutoPostBack="true" verursacht, das das Formular vor der Schaltfläche die Möglichkeit hatte, das Formular zum Auslösen des Klickereignisses zu übermitteln.

    
tomsv 01.06.2012 11:42
quelle
2

Ändern

%Vor%

bis

%Vor%

Verwandte Frage: CodeFile vs CodeBehind

    
TJB 16.09.2009 01:17
quelle
2

Die inherits-Anweisung scheint auf einen nicht existierenden Typ zu zeigen.

Schauen Sie in den Code hinter der Datei der CompanyCompliance-Seite - ("CompanyCompliance.aspx.cs").

Sie sollten den richtigen Namespace und etwas wie "public partially class xxx" finden, wobei xxx der Name der Klasse ist, die Ihrer ererits-Direktive entsprechen soll. vielleicht müssen Sie den Namen vollständig qualifizieren, wie TJB bereits gesagt hat.

    
360Airwalk 16.09.2009 07:13
quelle
2

Ich hatte ein ähnliches Problem und es war wirklich schwierig. Ich habe kürzlich eine VS 2005 ASP.NET 2.0-Webformular-App auf VS 2010 ASP.NET 4.0 migriert.

Es war schwierig zu installieren und fehlerhaft wie erwartet, aber das Problem der Tasten, die das Click-Ereignis nicht auslösen, ging mir auf die Nerven.

Am Ende war es so einfach, eine Submit-Aktion im site.master-Formular nicht zu deklarieren. Ich habe gewechselt:

%Vor%

bis

%Vor%

Boom. Problem gelöst. Ich hoffe, es spart Tage der Fehlersuche an jemanden. Leider konnte ich selbst nichts im Internet finden.

    
Francisco 24.06.2015 21:18
quelle
1

Ich hatte dieses Problem Ich habe die Button-Eigenschaft "UseSubmitBehavior" = false geändert. Jetzt funktioniert es.

    
K S BABJI 20.02.2015 08:27
quelle
0

Für zukünftige Antwortsuchende: Wenn Sie den Click-Handler im Code zurückweisen, stellen Sie sicher, dass er sich nicht in einer IsPostBack == false-Prüfung befindet:

%Vor%     
Brett Weber 04.09.2014 17:59
quelle

Tags und Links