Nuevo sitio

Nos mudamos a www.f5run.com.ar

miércoles, 30 de marzo de 2011

ASP.Net + jqModal + Ajax + Hide + Postback = Problema.

He aquí la solución :)

Si utilizamos el plugin de JQuery llamado jqModal, para abrir ventanas AJAX en ASP.Net, nos vamos a encontrar con un problema, si es que la ventana llamada tiene un formulario de servidor (Para más información, ver el post anterior: http://laboticadellanga.blogspot.com/2011/03/como-migrar-los-viejos-popups-ventanas.html)

El problema ocurrirá si luego de abrir y cerrar una ventana jqModal, queremos hacer alguna operación que implique un postback. El problema ocurre, porque al abrir la segunda ventana, se pisa una variable interna de ASP.Net llamada theForm que guarda la referencia al formulario de servidor principal.

La solución es realizar un resguardo de esa variable theForm, antes de abrir la ventana y luego restaurarla en el close. Por ejemplo, si tenemos un archivo js de utilidades, podemos armar estas dos funciones:


function openModal(url) {
    theFormBKP = theForm;
    $('#jqModal').jqm({ ajax: url, modal: true });
    $('#jqModal').jqmShow();
}

function closeModal() {
    $('#jqModal').jqmHide();
    theForm = theFormBKP;
}

La invocación es simple:
showModal("mipopup.aspx");
closeModal();

No hay comentarios.: