duda ispostback

14/10/2005 - 23:23 por TR | Informe spam
Hola,

Estoy haciendo un pequeño ejemplo donde muestro datos en un datagrid,
ejemlo:

private void Page_Load(object sender, System.EventArgs e)
{
if (! this.Page.IsPostBack)
{
this.sqlDataAdapter1.Fill(this.dsEmpleados1);
this.GridEmpleados.DataBind();
}
}


Ejecuto y funciona perfectamente, pincho en un link y voy a otra
página.. y vuelvo para atrás y se muestra de nuevo el datagrid.

Lo que no entiendo es que si en el código que he puesto arriba solo se
ejecuta cuando se carga la primera vez.. por qué se ejecuta cuando
vuelvo hacia atrás, no debería entrar en la condición no?.. y entra
porque se muestra de nuevo el datagrid,

no se, no entiendo mucho.. si alguien es tan amable de explicarme de
forma sencilla este concepto...

Un cordial saludos,

Preguntas similare

Leer las respuestas

#1 Benton
15/10/2005 - 00:34 | Informe spam
Estoy haciendo un pequeño ejemplo donde muestro datos en un datagrid,
ejemlo:

private void Page_Load(object sender, System.EventArgs e)
{
if (! this.Page.IsPostBack)
{
this.sqlDataAdapter1.Fill(this.dsEmpleados1);
this.GridEmpleados.DataBind();

Ejecuto y funciona perfectamente, pincho en un link y voy a otra página..
y vuelvo para atrás y se muestra de nuevo el datagrid.

Lo que no entiendo es que si en el código que he puesto arriba solo se
ejecuta cuando se carga la primera vez.. por qué se ejecuta cuando vuelvo
hacia atrás, no debería entrar en la condición no?



En realidad no se ejecuta, ya que como dices, la condición IsPostBack se lo
impide. Tu código sólo se ejecuta la primera vez que se carga la página.

y entra porque se muestra de nuevo el datagrid,



No, no entra. El datagrid se carga únicamente la primera vez. Después, su
contenido es mantenido automáticamente por un caché de ASP.NET llamado
ViewState. Este caché reside dentro de la página, no en el servidor ni en la
sesión. Si observas el código fuente de la página, verás una variable oculta
llamada VIEWSTATE que guarda el contenido de todos los controles que
soportan este caché, entre ellos el datagrid, los textboxes y otros. Los
controles pueden decidir si quieren que su contenido se guarde o no en el
ViewState mediante su propiedad EnableViewState. Ponla en false para tu
datagrid y obtendrás el efecto que esperabas.

Saludos,

-Benton
Respuesta Responder a este mensaje
#2 TR
15/10/2005 - 12:48 | Informe spam
Muchas gracias Benton... ahora lo tengo mucho mas clar. Gracias por la
ayuda.

Saludos,

Benton escribió:
Estoy haciendo un pequeño ejemplo donde muestro datos en un datagrid,
ejemlo:

private void Page_Load(object sender, System.EventArgs e)
{
if (! this.Page.IsPostBack)
{
this.sqlDataAdapter1.Fill(this.dsEmpleados1);
this.GridEmpleados.DataBind();




Ejecuto y funciona perfectamente, pincho en un link y voy a otra página..
y vuelvo para atrás y se muestra de nuevo el datagrid.

Lo que no entiendo es que si en el código que he puesto arriba solo se
ejecuta cuando se carga la primera vez.. por qué se ejecuta cuando vuelvo
hacia atrás, no debería entrar en la condición no?




En realidad no se ejecuta, ya que como dices, la condición IsPostBack se lo
impide. Tu código sólo se ejecuta la primera vez que se carga la página.


y entra porque se muestra de nuevo el datagrid,




No, no entra. El datagrid se carga únicamente la primera vez. Después, su
contenido es mantenido automáticamente por un caché de ASP.NET llamado
ViewState. Este caché reside dentro de la página, no en el servidor ni en la
sesión. Si observas el código fuente de la página, verás una variable oculta
llamada VIEWSTATE que guarda el contenido de todos los controles que
soportan este caché, entre ellos el datagrid, los textboxes y otros. Los
controles pueden decidir si quieren que su contenido se guarde o no en el
ViewState mediante su propiedad EnableViewState. Ponla en false para tu
datagrid y obtendrás el efecto que esperabas.

Saludos,

-Benton


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida