none
WebForms: Paso De Datos Por Medio De Sesiones RRS feed

  • Pregunta

  • ASP.NET 4.0 / Visual C# 2010

    Hola a todos

    En el WebForm1.aspx que tiene un TextBox1, se ingresa un Código y al pulsar en el Botón Submit se espera mostrarlo en el WebForm2.aspx. Para ello se implementa los códigos inferiores, pero no funcionan. No se muestra ningún error, pero tampoco se pasan los datos.

    Código WebForm1.aspx:

            protected void Submit_Click(object sender, EventArgs e)
            {
                Session.Add("Código", TextBox1.Text);
            }

    Código WebForm2.aspx:

            protected void Page_Load(object sender, EventArgs e)
            {
                Response.Write(Session["Código"]); //No Funciona
            }

    ¿Dónde esta el Error?

    ¿Cuál es la solución?

    Desde ya Muchísimas Gracias


    Skar.2007

    miércoles, 25 de marzo de 2015 18:21

Respuestas

  • Pues alli esta el problema, cuando colocas la propiedad PostBackUrl, no se lanza el evento On_click del boton. pues se hace a traves de javascript.
    • Marcado como respuesta Skar.2007 jueves, 26 de marzo de 2015 0:33
    miércoles, 25 de marzo de 2015 19:23
  • >>el redireccionamiento se hace a través de la Propiedad PostBackUrl del Botón Submit

    pero entonces para que usas la session si podrias aplicar

    Cross-Page Posting in ASP.NET Web Pages

    y acceder directo al valor del textbox desde webform2

    ----

    estas seguro que se ejecuta el evento click del boton cuando defines el PostBackUrl  yo diria que no

    validalo con un breakpoint en Submit_Click estoy seguro que no pasa por alli

    deberias quitar el PostBackUrl para que se ejecute el click del boton y de alli redireccionas a la otra pagina

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    miércoles, 25 de marzo de 2015 19:23

Todas las respuestas

  • hola

    lo primero que aconsejaria es que no uses acentos en la key cuando usas el objeto session

    para asignar el valor usarias


    lo que no veo es donde redireccionas a Webform2 ?

    protected void Submit_Click(object sender, EventArgs e){
    
        Session["codigo"] = TextBox1.Text;
    
        Response.Redirect("webform2.aspx");
    
    }


    >>¿Dónde esta el Error?

    pero obtienes algun mensaje de error ?  que pasa si defines ese codigo dentro de un try..catch puedes capturar algun problema


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    miércoles, 25 de marzo de 2015 18:37
  • Modifica:

    Response.Write(Session["Código"]);

    con:

    Response.Write(Session["Código"].ToString());

    miércoles, 25 de marzo de 2015 18:43
  • Gracias Leandro y Horroroso Horroroso

    Pero...

    1º Ninguna de las modificaciones funciona.

    2º Leandro, el redireccionamiento se hace a través de la Propiedad PostBackUrl del Botón Submit y la referencia a un error se indica por la mala implementación de código, pues no se muestra ningún mensaje de error en las Páginas cargadas.

    3º En la línea sugerida por Horroroso Horroroso si se muestra el error: 

         Referencia a objeto no establecida como instancia de un objeto.

    ¿Alguna idea para solucionarlo?

    Desde ya Muchísimas Gracias


    Skar.2007

    miércoles, 25 de marzo de 2015 19:15
  • Pues alli esta el problema, cuando colocas la propiedad PostBackUrl, no se lanza el evento On_click del boton. pues se hace a traves de javascript.
    • Marcado como respuesta Skar.2007 jueves, 26 de marzo de 2015 0:33
    miércoles, 25 de marzo de 2015 19:23
  • >>el redireccionamiento se hace a través de la Propiedad PostBackUrl del Botón Submit

    pero entonces para que usas la session si podrias aplicar

    Cross-Page Posting in ASP.NET Web Pages

    y acceder directo al valor del textbox desde webform2

    ----

    estas seguro que se ejecuta el evento click del boton cuando defines el PostBackUrl  yo diria que no

    validalo con un breakpoint en Submit_Click estoy seguro que no pasa por alli

    deberias quitar el PostBackUrl para que se ejecute el click del boton y de alli redireccionas a la otra pagina

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    miércoles, 25 de marzo de 2015 19:23
  • Concuerdo con Leandro, lo mejor es quitar el PostBackUrl y de alli redireccionar con Server.Transfer o Response.Redirect

    Saludos.

    miércoles, 25 de marzo de 2015 19:29
  • Gracias a todos

    Ahora, si no fuese mucha molestia, Leandro y/o Horroroso podrían por favor explicar:

    1º ¿Por qué la Propiedad PostBackUrl 'anula' al Evento Click?, y

    2º ¿Cuándo o en qué circunstancias se debe utilizar esta Propiedad (dado que en el paso de Datos mediante Propiedades de Clase del WebForm se hace empleando dicha Propiedad)?

    Desde ya Muchísimas Gracias


    Skar.2007

    jueves, 26 de marzo de 2015 0:33
  • >>¿Por qué la Propiedad PostBackUrl 'anula' al Evento Click?,

    porque el evento se ejecuta sobre la pagina destino no sobre la pagina donde esta el control, por lo tanto los evento en esa pagina quedan sin efecto

    >>¿Cuándo o en qué circunstancias se debe utilizar esta Propiedad (dado que en el paso de Datos mediante Propiedades de Clase del WebForm se hace empleando dicha Propiedad)?

    cuando lo necesites, hay muchas formas de lograr un mismo objetivo, si quieres usar la tecnica de Cross Page puede hacerlo sino sigues con los objeto session

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 26 de marzo de 2015 0:46