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.
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.
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.
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.
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.
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%Tags und Links c# asp.net event-handling obout