Fehlerbehebung bei ASP.NET-Schaltflächenklickereignissen in jQuery-UI-Dialogfeldern
Dieser Artikel befasst sich mit einem häufigen Problem: ASP.NET-Schaltflächen in einem jQuery-UI-Dialog können ihre serverseitigen Klickereignishandler nicht auslösen. Selbst das Verschieben des Div des Dialogs in das Formular löst das Problem nicht.
Das Problem verstehen
Die Hauptursache ist häufig ein Abschlussproblem im jQuery-Code. Beim Erstellen des Dialogs mit jQuery("#dialog").dialog({...})
wird das jQuery-Objekt, das den Dialog darstellt, im Abschluss eingeschlossen. Versuche, den Dialog nachträglich zu manipulieren, z. B. jQuery("#dialog").parent().appendTo(jQuery("form:first"))
, schlagen fehl, da nicht auf das richtige Objekt verwiesen wird.
Die Lösung: Richtige Objektreferenzierung
Die Lösung besteht darin, das jQuery-Dialogobjekt in einer Variablen außerhalb des Abschlussbereichs zu speichern. Dies ermöglicht den fortgesetzten Zugriff und die Bearbeitung, nachdem der Dialog erstellt wurde. Hier ist der korrigierte Code:
<code class="language-javascript">jQuery(function() { var dlg = jQuery("#dialog").dialog({ draggable: true, resizable: true, show: 'Transfer', hide: 'Transfer', width: 320, autoOpen: false, minHeight: 10, minWidth: 10, }); dlg.parent().appendTo(jQuery("form:first")); });</code>
Durch die Zuweisung des jQuery-Objekts zur Variablen dlg
zielen nachfolgende Vorgänge am Dialogelement, einschließlich der für die Postback-Funktionalität entscheidenden, korrekt auf den Dialog ab, sodass die serverseitigen Ereignishandler für Schaltflächenklicks wie erwartet funktionieren.
Das obige ist der detaillierte Inhalt vonWarum werden meine ASP.NET-Schaltflächenklickereignisse nicht in einem jQuery-UI-Dialogfeld ausgelöst?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!