Tengo un jQuery UI Dialog que funciona muy bien en mi página ASP.NET:
jQuery(function() {
jQuery("#dialog").dialog({
draggable: true,
resizable: true,
show: 'Transfer',
hide: 'Transfer',
width: 320,
autoOpen: false,
minHeight: 10,
minwidth: 10
});
});
jQuery(document).ready(function() {
jQuery("#button_id").click(function(e) {
jQuery('#dialog').dialog('option', 'position', [e.pageX + 10, e.pageY + 10]);
jQuery('#dialog').dialog('open');
});
});
Mi div:
<div id="dialog" style="text-align: left;display: none;">
<asp:Button ID="btnButton" runat="server" Text="Button" onclick="btnButton_Click" />
</div>
Pero el btnButton_Click nunca se llama ... ¿Cómo puedo resolver eso?
Más información: agregué este código para mover div al formulario:
jQuery("#dialog").parent().appendTo(jQuery("form:first"));
Pero aún sin éxito ...
Respuestas:
Estás cerca de la solución, solo obtienes el objeto equivocado. Debería ser así:
fuente
El uso de este código resolvió mi problema y funcionó en todos los navegadores, Internet Explorer 7, Firefox 3 y Google Chrome. Empiezo a amar jQuery ... Es un marco genial.
También he probado con render parcial, exactamente lo que estaba buscando. ¡Excelente!
fuente
FWIW, la forma: la primera técnica no funcionó para mí.
Sin embargo, la técnica en ese artículo de blog hizo:
http://blog.roonga.com.au/2009/07/using-jquery-ui-dialog-with-aspnet-and.html
Específicamente, agregando esto a la declaración de diálogo:
fuente
Tenga en cuenta que hay una configuración adicional en jQuery UI v1.10. Se ha agregado una configuración appendTo para abordar la solución alternativa de ASP.NET que está utilizando para volver a agregar el elemento al formulario.
Tratar:
fuente
La respuesta de Ken arriba hizo el truco para mí. El problema con la respuesta aceptada es que solo funciona si tiene un solo modal en la página. Si tiene varios modales, deberá hacerlo en línea en el parámetro "abierto" mientras inicializa el diálogo, no después del hecho.
Si haces lo que la primera respuesta aceptada te dice con múltiples modales, solo obtendrás el último modal en la página que funciona correctamente, pero no todos.
fuente
Principalmente es porque jQuery mueve el diálogo fuera de las etiquetas de formulario usando el DOM . Vuelva a colocarlo dentro de las etiquetas de formulario y debería funcionar bien. Puede ver esto inspeccionando el elemento en Firefox.
fuente
No quería tener que solucionar este problema para cada diálogo en mi proyecto, así que creé un simple complemento jQuery. Este complemento es simplemente para abrir nuevos cuadros de diálogo y colocarlos dentro del formulario ASP.NET :
Entonces, para usar el complemento, primero cargue jQuery UI y luego el complemento. Entonces puedes hacer algo como lo siguiente:
Para ser claros, este complemento supone que está listo para mostrar el cuadro de diálogo cuando lo llame.
fuente
Sé que esta es una pregunta antigua, pero para cualquiera que tenga el mismo problema, hay una solución más nueva y más simple: se ha introducido una opción "appendTo" en jQuery UI 1.10.0
http://api.jqueryui.com/dialog/#option-appendTo
fuente
¡Fantástico! Esto resolvió mi problema con ASP: el evento de botón no se activa dentro de jQuery modal. Tenga en cuenta que el uso del modo jQuery UI con lo siguiente permite que se active el evento de botón:
¡La siguiente línea es la clave para que esto funcione!
fuente
Acabo de agregar la siguiente línea después de crear el diálogo:
fuente
Esta fue la solución más clara para mí.
Todo el contenido dentro del
dlg2
estará disponible para insertar en su base de datos. No olvides cambiar ladialog
variable para que coincida con la tuya.fuente
Con ASP.NET solo use
UseSubmitBehavior="false"
en su botón ASP.NET:Referencia: Propiedad Button.UseSubmitBehavior
fuente
La solución de Robert MacLean con el mayor número de votos es 99% correcta. Pero la única adición que alguien podría requerir, como lo hice yo, es que cada vez que necesite abrir este cuadro de diálogo jQuery, no olvide agregarlo a los padres. Como abajo:
var dlg = $('#questionPopup').dialog( 'open'); dlg.parent().appendTo($("form:first"));
fuente
Use esta línea para hacer que esto funcione mientras usa la opción modal: true.
fuente
La
$('#dialog').parent().appendTo($("form:first"))
solución funciona bien en IE 9. Pero en IE 8 hace que el diálogo aparezca y desaparezca directamente. No puede ver esto a menos que coloque algunas alertas, por lo que parece que el cuadro de diálogo nunca aparece. Me paso una mañana buscando una solución que funcione en ambas versiones y la única solución que funciona en ambas versiones 8 y 9 es:Espero que esto ayude a otros que están luchando con el mismo problema.
fuente
UseSubmitBehavior
propiedad de Button enfalse
valor. De esta manera no necesitas ningunaappend
oprepend
llamadas.Mueva el cuadro de diálogo de la manera correcta, pero debe hacerlo solo en el botón que abre el cuadro de diálogo. Aquí hay un código adicional en la muestra de jQuery UI:
Agregue su
asp:button
dentro del diálogo, y se ejecuta bien.Nota: debe cambiar el <botón> a <input type = button> para evitar la devolución de datos después de hacer clic en el botón "crear usuario".
fuente
La solución exacta es;
fuente