Integration von jQuery-UI-Dialogen mit ASP.NET-Button-Postbacks
Erweitern Sie Ihre ASP.NET-Webseiten mit interaktiven jQuery-UI-Dialogen. Das Auslösen serverseitiger ASP.NET-Schaltflächen-Postbacks aus diesen Dialogen erfordert jedoch einen bestimmten Ansatz.
Hier liegt die Herausforderung: Ein standardmäßiger jQuery-UI-Dialog löst, wenn er nicht ordnungsgemäß integriert ist, nicht automatisch das Click
-Ereignis der zugehörigen ASP.NET-Schaltfläche aus. Dies liegt daran, dass der Dialog normalerweise außerhalb der Formulargrenzen gerendert wird.
Problem und Lösung:
Der folgende Codeausschnitt veranschaulicht das Problem:
<code class="language-javascript">jQuery(function() { jQuery("#dialog").dialog({ draggable: true, resizable: true, show: 'Transfer', hide: 'Transfer', width: 320, autoOpen: false, minHeight: 10, minwidth: 10 }); jQuery("#button_id").click(function(e) { jQuery('#dialog').dialog('option', 'position', [e.pageX + 10, e.pageY + 10]); jQuery('#dialog').dialog('open'); }); });</code>
Dieser Code wird, so wie er ist, den btnButton_Click
serverseitigen Ereignishandler nicht ausführen können.
Die Lösung besteht darin, sicherzustellen, dass der Dialog korrekt innerhalb des ASP.NET-Formulars positioniert ist. Ändern Sie den Code wie folgt:
<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>
Dieser angepasste Code hängt das übergeordnete Element des Dialogs an das erste Formular auf der Seite an (jQuery("form:first")
). Dieser entscheidende Schritt stellt sicher, dass der Dialog nun Teil des Übermittlungsprozesses des Formulars ist, sodass das Postback der ASP.NET-Schaltfläche ordnungsgemäß funktioniert.
Das obige ist der detaillierte Inhalt vonWie löst man ein ASP.NET-Button-Postback aus einem jQuery-UI-Dialog aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!