Button Postback nicht innerhalb jQuery Dialog innerhalb UC
-
05-07-2019 - |
Frage
Ich bin ein Benutzer die Kontrolle der Entwicklung und es hat innerhalb jQuery Dialog eine asp.net-Taste, aber wenn ich die Taste drücken nichts passiert, ich meine es nicht auf die Schaltfläche Click-Ereignis auf der server nicht nennen, ich habe versucht,
dlg.parent().appendTo(jQuery("form:first"));
, aber es hat nicht mir helfen, ist es möglich, diese innerhalb asp.net Usercontrol achive? Auch frage ich mich, wenn ich Update innerhalb Dialogs verwenden kann oder nicht?
Lösung
Sie können die Taste ein Dialogtaste und eine asp.net-Taste mit der ID HiddenButton auf der Seite platzieren und wickeln Sie es in einem div mit einem Stil von display:none;
So ist die Schaltfläche nicht sichtbar. (Darf nicht sichtbar sein = "false" so die Taste wiedergegeben wird)
Im Dialog javascript eine Schaltfläche hinzufügen, die die Wirkung des Klick auf die versteckte Taste hat
jQuery("#dialog").dialog({
buttons: {
'ButtonText': function() {
//save the session
__doPostBack('<%# HiddenButton.ClientID %>', '')
jQuery(this).dialog('close');
}
}
});
und fügen Sie einen asp Click-Handler, um die versteckte Taste
<div style="display:none;">
<asp:Button ID="HiddenButton" OnClick="HiddenButton_Click" ></Button>
<div>
Klicken Sie auf Ereignis auf dem server wird ausgelöst, wenn die Dialog-Schaltfläche geklickt wird
Hope, das hilft ich dieses Muster verwenden die ganze Zeit
Andere Tipps
Ich vermute, dass es etwas sein kann mit ASP.NET nicht in der Lage zu finden, auf den Button in der Form.
zu tunMit dem .live Ereignisse Setup in jQuery - bindet das Ereignis aus, bevor Sie den Dialog mit .live erstellen und es sollte funktionieren ...
Sie werden mit so etwas wie dies in Ihrer document.ready Funktion am Ende:
$("#btn").live("click", function(){
// Do something
});
$("#dialog").dialog({
...
}
Ich hatte das gleiche Problem. Ich beenden die Schaltfläche aus dem Dialog nach oben ziehen, es mit CSS versteckt, und dann ist es aus der Nähe Ereignisse auf der Dialogauslösung (ich werde es später mehr sauber tun, aber das tut das Problem veranschaulichen, zumindest).