2009-05-12 21 views
5

Estoy teniendo un pequeño problema con esta configuración aquí tengo una lista de archivos .ascx y todos hacen diferentes tareas en términos de cálculos para el controlador. Entonces en mi página .aspx hago clic en Ajax.ActionLink() y esto renderizará ese archivo específico .ascx basado en el elemento que hice clic. Dentro de ese .ascx hay 1-3 eventos que dispararán 2 de ellos son onclick eventos y 1 es onload. El evento onclick es más fácil de trabajar en términos de que puedo codificarlo directamente en el evento de controles como onclick="$("#toggleMe3").slideToggle("slow");" y el onload debe ejecutarse cuando el .ascx está cargado lo estaba probando en una llamada $(document).ready(function(){});, esto funciona bien en el .aspx página pero tan pronto como trato de agregarlo a la página .aspx no se carga y es ideal que esto funcione, pero no tengo idea de por qué no. De hecho, nada en las etiquetas de script funciona si lo inserto directamente en la página .ascx que solo funcionan si están codificadas en los eventos del control, bueno algunos de ellos al menos; onload y onprerender no disparan.

+0

mismo problema aquí. –

Respuesta

1

Tuve el mismo problema, después de que el script de devolución de datos parcial especificado en $ (documento) .ready no se ejecutó. He encontrado la solución aquí MSDN - PageRequestManager Class

Parece que la adición de una secuencia de comandos, como a continuación corrige el problema

<script type="text/javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction); 
</script> 
1

He tenido éxito usando $ (document) .ready en mis parciales que se cargan a través de XHR. ¿Las vistas que estás cargando a través de XHR arrojan excepciones de JavaScript? ¿O contienen HTML malformado?

Me suelen tener mi $ (document) Método ready en la parte inferior de mi parcial que me carga a través de Ajax, como ...

<script type="text/javascript"> 
$(document).ready(function(){ callMyFunction(); }); 
</script> 
+0

Lamentablemente, esto no funciona para mí, agregué las etiquetas de script al final, todavía no tuve suerte. Estoy usando MicrosoftAjax.js para controlar las llamadas Ajax y no la función jquery ajax. – Ayo

+0

Esto funciona para mí, al menos en FF3.5 e IE7 en Windows XP. Sin embargo, no entiendo por qué, ya que la documentación de jQuery no maneja este caso ... –

+0

funcionó para mí en Chrome – Roch

1

que tenía dificultades para entender su pregunta ... pero aquí va.

Si está cargando la fecha mediante llamadas AJAX, el evento $ (document) .ready() no se activará porque la página ya estaba cargada. Solo está cargando más datos ahora.

Si ya conoce los controles, lo que aparecerá, precargue el JavaScript, pero en lugar de solo enlazar con el controlador de eventos click, use el controlador en vivo.

por lo

$("#myControl").click(....); 

convierte en

$("#myControl").live("click", ....); 

Lo siento si esto no es lo que estabas buscando.

+0

¿funcionaría esto en mi página de ascx? – Ayo

+0

si la página no está cargada dinámicamente, sí. De lo contrario, necesita el directo para precargar los controladores de eventos desde el aspx. De lo contrario, tendrá que agregar algunos ganchos más en el lado del cliente para saber cuándo se carga el contenido, y la llamada javascript cargado. –

Cuestiones relacionadas