Eventos Postback Frente a Eventos No Post Back
Los eventos Postback son aquellos que se publican en el servidor inmediatamente estos son tales como el Button.Click por otro lado estan los NoPostBack son los que no se publican inmediatamente en el servidor como TextBox.TextChanged, o eventos o eventos de seleccion como los CheckBox.CheckedChanged, en su lugar el control se guarda en cache estos eventos hasta la siguiente vez que ocurra una aplicacion, claro que este comportamiento puede cambiar (elementos nopostback ponerlos como postback) su propiedad AutoPostBack en true.
Controles Postback y no postback |
Postback | No-PostBack |
Button | BulletedList |
Calendar | CheckBox |
DataGrid | CheckBoxList |
DataList | DataPager |
FileUpload | DropDownList |
GridView | ListBox |
ImageButton | Panel |
ImageMap | RadioButtonList |
LinkButton | RadioButton |
ListView | ScriptManager* |
Menu | ScriptManagerProxy* |
Repeater | TextBox |
Timer* | |
UpdatePanel* | |
UpdateProgress* |
Los de Rojo en la tabla son controles AJAX ASP.NET.
Tipos de Post Back
Hay 2 tipos de PostBack, uno de ellos es en “normal” asincrono ocurre cuando todos los eventos no postback se recompilan junto con el estado de la vista y valores de formulario para ser enviados al servidor y se genera una nueva pagina HTML para ser visualisada en el navegador, esto era antes de que apareciera el AJAX, los usuarios lo visualizan cuando dan un boton send por ejemplo se pone la pantalla blanca y carga una pantalla nueva.
Con AJAX esta el postback asincrono, es donde el servidor actualiza solo el componete como lo son los combos que traen por ejemplos los paises, a simple vista ya no pone la pagina en blanco aunque haga un postback al servidor solo actualiza el control, pero a simple vista ya que el post back lo hace completo solo el control se devuelve.
IsPotsBack
El Objeto Page presenta la propiedad IsPostBack, la cual es una propiedad Booleana de solo lectura que inidca si la pagina se carga por primera vez o si se carga en respuesta a un postback del cliente. Existen muchas operaciones costosas que solo se necesitaran cargar una sola vez. evitando que vuelva a generarse esa operacion costosa
mipagina.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Label1.Text = “Esta es la operacion Costosa Que se ejecuta”;
}
else
{
Label1.Text = DateTime.Now.ToString();
}
}
En este ejemplo es solo para dar entender el concepto, la primera vez muestra un mensaje, despues muestra la Hora.
See Ya