Peut être que parmi vous certains ont déjà rencontré ce problème, lorque l’on utilise une dialog JQuery UI (http://jqueryui.com/demos/dialog/) et que l’on y place un bouton asp.net, au clic sur celui-ci un refresh de la page est bien effectué, mais ni de postback ni le déclenchement de l’évènement est apellé. Mais pourquoi donc ? WTF ?

Le problème est simple, JQuery va créer la dialog en dehors de votre formulaire (balise form). Et donc rien ne fonctionne comme on le voudrait.

Voilà comment résoudre simplement le problème :

// fonction qui est appelée pour afficher la dialog
function DisplayDialog() {

//supprime la dialog si elle existe déja
$("#dialog:ui-dialog").dialog("destroy");

// création de la nouvelle dialog et stockage de la référence dans un variable
var dialog = $("#dialog").dialog({
                height: 150,
                modal: true
            });

// Correction pour le postback Asp.net
// Ajout de la dialog dans le premier formulaire de la page (en asp.net, y en a qu'un dans 99% des cas)
 dialog.parent().appendTo($("form:first"));
}

Vincent Bourdon

.Net Dev since 2001

evilz Evilznet


Published