Pude haber entendido mal cómo funciona AJAX. ¿Alguien puede arrojar algo de luz sobre el siguiente escenario simplificado:¿He entendido mal por completo a ASP.Net AJAX (Panel de actualización)?
Tengo una aplicación web asp.net. En una página hay un control de usuario dentro de un panel de actualización (sin propiedades modificadas) y un administrador de scripts.
En el control de usuario y en el formulario hay una etiqueta, ambos obtienen su texto establecido en DateTime.Now.ToString
en el evento de carga. También hay un botón que causa una publicación en el control del usuario.
Cuando hago clic en el botón, como espero, la etiqueta dentro del control de usuario se actualiza y la etiqueta de la página ahora sí. Hasta aquí todo bien.
Sin embargo ... el evento de carga de página en la página hace se procesan con IsPostBack = True (que no esperaba), y parece que todo lo que sucede en el caso de la carga no se empuja de nuevo a la cliente (ya que la etiqueta no se actualizó).
No esperaba que el evento de carga de página (en la página que contiene el control de usuario) se generara y procesara cuando se actualiza un panel AJAX, ¿es correcto? o estoy haciendo algo mal? Recuerdo haber leído algo sobre Page.IsCallback, pero eso es falso, así que tal vez eso no tiene nada que ver con esto.
Creo que el kit de herramientas de control ajax es un completo desastre y el código de JavaScript que se genera es realmente malo. Le recomendaría que en su lugar aprenda javascript y ajax cómo se debe hacer y tal vez use un marco de JavaScript como jquery para resolver sus problemas. –
@Tomas, aunque estoy de acuerdo en que Ajax Control Toolkit es un desastre, creo que si todavía está trabajando dentro del marco ASP.NET tradicional, los UpdatePanels siguen siendo el camino a seguir la mayor parte del tiempo. Pero desea aprender cómo ser muy selectivo sobre qué componentes tienen habilitado ViewState, siendo el valor predeterminado falso. Dicho esto, todo el paradigma ASP.NET tradicional es un error y sugeriría un marco MVC como ASP.NET MVC en combinación con un comando de Javascript y JQuery. –
@Stephen: Puede hacer cosas "ok" en los formularios web antiguos si evita los UpdatePanels. Puede definir servicios que vuelvan json y realicen llamadas contra aquellos con jquery en lugar de hacer devoluciones de datos regulares. Solo he estado en un proyecto usando UpdatePanels y estoy contento de haberlo puesto que me abrió los ojos en cuanto a cómo no debería resolver un problema similar. –