none
Pasar datos de gridview a otra pagina en textbox asp.net c# RRS feed

  • Pregunta

  • Buenos dias,..

    Tengo estas lineas de codigo en donde en mi form2 tengo mi grid y lo quiero pasar al form1

    ejemplo:

      protected void grdInter_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridViewRow row = grdIntercambio.SelectedRow;
            Session["folio"] = row.Cells[0].Text;
            Session["numero_rem"] = row.Cells[1].Text;
            Response.Redirect("form1.aspx");
       

        }

    pero mi duda es como program mi form1 para que reciba estos parametros??? en internet veia esto asi Me.textbox1.text=session("columna1) pero me marca error en session, alguien me podria ayudar si saben, se los agradeceria mucho, gracias.


    miércoles, 19 de octubre de 2016 16:10

Respuestas

  • Hola ProgramadoraAprendiendo25,

    Creo que te sería mejor que crees una clase "X" y mediante sus atributos obtienes y/o asignas los valores, además de tener un mayor control.

    Algo como :

          public class MiClase
            {
                public string folio { get; set; }
                public string numRem { get; set; }
            }

    Cuando vas a obtener los datos de la fila :

        protected void grdIntercambio_SelectedIndexChanged(object sender, EventArgs e)
            {
                GridViewRow row = grdIntercambio.SelectedRow;
    
                MiClase obj = new MiClase()
                {
                    folio = row.Cells[0].Text,
                    numRem = row.Cells[1].Text
                };
    
                Session["DataMiClase"] = obj;
              
                Response.Redirect("form1.aspx");
            }

    Y en el form donde vas a obtener los valores, tienes que castear el valor de Session al tipo de objeto.

     protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    MiClase obj = (MiClase)Session["DataMiClase"];
    
                    if(obj != null)
                    {
                        TextBox1.Text = obj.folio;
                        TextBox2.Text = obj.numRem;
                    }
                }
            }

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 19 de octubre de 2016 17:42

Todas las respuestas

  • Hola, alguien sabe como seria?
    miércoles, 19 de octubre de 2016 17:30
  • Hola ProgramadoraAprendiendo25,

    Creo que te sería mejor que crees una clase "X" y mediante sus atributos obtienes y/o asignas los valores, además de tener un mayor control.

    Algo como :

          public class MiClase
            {
                public string folio { get; set; }
                public string numRem { get; set; }
            }

    Cuando vas a obtener los datos de la fila :

        protected void grdIntercambio_SelectedIndexChanged(object sender, EventArgs e)
            {
                GridViewRow row = grdIntercambio.SelectedRow;
    
                MiClase obj = new MiClase()
                {
                    folio = row.Cells[0].Text,
                    numRem = row.Cells[1].Text
                };
    
                Session["DataMiClase"] = obj;
              
                Response.Redirect("form1.aspx");
            }

    Y en el form donde vas a obtener los valores, tienes que castear el valor de Session al tipo de objeto.

     protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    MiClase obj = (MiClase)Session["DataMiClase"];
    
                    if(obj != null)
                    {
                        TextBox1.Text = obj.folio;
                        TextBox2.Text = obj.numRem;
                    }
                }
            }

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 19 de octubre de 2016 17:42
  • Apenas aprendo, por eso tantas dudas ahora la cuestion es que no hace nada, asi tengo mi grid

    <div style="width: 80%; height: 300; overflow: auto;">
                            <asp:GridView ID="grdIntercambio" runat="server" DataSourceID="SqlDataSource1" CellPadding="4"
                                ForeColor="#333333" GridLines="None" OnSelectedIndexChanged="grdIntercambio_SelectedIndexChanged">
                                <AlternatingRowStyle BackColor="White" />
                                <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                                <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                                <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
                                <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
                                <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
                                <SortedAscendingCellStyle BackColor="#FDF5AC" />
                                <SortedAscendingHeaderStyle BackColor="#4D0000" />
                                <SortedDescendingCellStyle BackColor="#FCF6C0" />
                                <SortedDescendingHeaderStyle BackColor="#820000" />
                            </asp:GridView>
                        </div>
                        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:pruebas%>"
                            SelectCommand="select Folio,Numero_rem  from [Inter]" />

    Nose porque no este hacienda nada, lo programa tal cual me explicaste y no marca error, sabrias porque?

    miércoles, 19 de octubre de 2016 18:32
  • Joel C. Naupa Crispín Buenos dias:

    Me funciono a la perfeccion, una duda mas, como seria si tengo radiobutton, en mi tabla estan guardados en bit+ true, false,entonces si lo tengo en mi grid como seria pasarlos a radiobutton???

    asi como TextBox1.Text = obj.folio;

    como seria en un radiobutton???

    RadioButton.?=obj.tipo;???

    agradezco tu ayuda

    viernes, 21 de octubre de 2016 15:58
  • Hola ProgramadoraAprendiendo25,

    Si es un tipo bit almacena un valor 0 o 1, en C# usarías un campo de tipo bool (true = 1 y false 0)

     public bool estado { get; set; }

    Y para activar el RadioButton :

    rbActivo.Checked = obj.estado;
    rbInactivo.Checked = !rbActivo.Checked;

    Dónde si obj.estado retorna true (se activa), el inactivo recibe la negación (no lo hace), de igual forma al revés.

    Si no te ayuda, agradecería que detalles un poco más, como el número de estados (más de 2, etc), si tu campo en BD acepta valores NULL, etc , para poder brindarte un ejemplo más acertado.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    viernes, 21 de octubre de 2016 18:04
  • Con eso funciono gracias Dios te regale mucha sabiduria y bendiciones, excelente viernes y fin de semana :)

    Saludos

    viernes, 21 de octubre de 2016 20:50