update trigger template net content asyncpostbacktrigger asp c# ajax user-controls updatepanel

c# - trigger - Alternativas a UpdatePanel en un control de usuario(página ASCX)



triggers c# updatepanel (3)

jQuery AJAX es mi recomendación, utilizado con servicios web ofrece una buena solución.

Actualmente estoy trabajando en una aplicación ASP.NET AJAX. Después de haber decidido no usar UpdatePanels por razones evidentes, ¿qué alternativas tengo? Esta aplicación tiene páginas compiladas dinámicamente y, por lo tanto, la mayoría o todos los componentes de la página existen como controles de usuario.

Necesito hacer llamadas AJAX desde la página de control de usuario de ASCX. Y como los controles de usuario de ASCX pueden no contener métodos de página, ¿qué otras opciones tengo?

O bien, ¿hay alguna forma de evitar usar Page Methods en la página ASCX?


No puede llamar a webmethods desde un UserControl como dijo. La razón de esto es que los métodos marcados con el atributo WebMethod también deben ser estáticos. UserControls no es compatible con esto. Si no está dispuesto a usar un UpdatePanel , no tiene muchas opciones.

¿Podría hacer llamadas AJAX a través de jQuery a web services ? Esta sería una opción ...

UpdatePanel controles UpdatePanel utilizados con UpdateMode="Conditional" le brindan un control bastante bueno sobre lo que está sucediendo con las devoluciones de llamada y sigue siendo una solución razonable. No será tan liviano como una llamada ajax recta, pero será fácil de mantener, etc.


La mejor forma (que descubrí) es 1. Coloque su PageMethods en la página principal 2. Cuando complete el método PageMethod, informe a su control de usuario a través de un método JS que puede haber completado la llamada a PageMethod 3. Entonces, puede ser un ICallbackHandler implementado en el control de usuario para hacer una devolución de llamada AJAX en el método de control del usuario

En mi caso, necesito actualizar algunos valores en el control del usuario después de que se ejecute PageMethods, así que construyo mi control de usuario usando HtmlOutputWriter para actualizar los contenidos.

¡Funciona para mi!