UpdatePanel - PostBackTrigger
Se le denomina Trigger al evento de un determinado control causa que el UpdatePanel realice el proceso de renderización parcial de pagina para actualizar o refrescar su contenido, el Update panel maneja dos tipos de trigger.
-
AsyncPostBackTrigger: este invoca un postback asíncrono al UpdatePanel
-
PostBackTrigger: invoca un típico postback en lo cual la pagina se refresca en su totalidad.
PostBackTrigger
El PostBack Trigger funciona de la manera igual a tradicional postback de ASP.NET, esto causa que la página se actualice o refresque completamente, El PostBackTrigger se utiliza en escenarios en donde deseas lograr comportamiento en el cual un control hijo del UpdatePanel, no invoque un AsyncPostBackTrigger si no que haga una actualización completa de pagina, recordemos que todos los eventos de los controles hijos del UpdatePanel son por defecto del tipo AsyncPostBackTrigger.
Esto se puede lograr declarativamente o programáticamente de la misma manera que la clase AsyncPostBackTrigger, para crear un PostBackTrigger programáticamente se debe sobre-escribir el evento Init() como se muestra de la siguiente manera, debido a que en el evento Init() se registran todos los UpdatePanel en el ScriptManager.
Sobre-escritura del evento Int() en C#
Sobre-escritura del evento Int() en C#
El resultado al realizar un click en el Botón contenido en el UpdatePanel
La otra manera de realizar el PostBackTrigger es de manera declarativa para esto podemos usar el wizard de la propiedad Triggers del barra propiedades del UpdatePanel en visual studio, el resultado final deberá ser similar al siguiente fragmento de código declarativo.
Conclusión:
Agregar un trigger de tipo PostBackTrigger tanto declarativamente como programáticamente es similar a un trigger de tipo AsyncPostBackTrigger la única diferencia es que se excluye la propiedad EventName debido a que cuando se agrega un PostBackTrigger todos los eventos del control asociado al trigger tendrán un comportamiento similar a los tradicionales postback de ASP.NET.