none
Instanciar un formweb en otro RRS feed

  • Pregunta

  • Amigos buenas tardes  espero este bien ,  me podrian ayudar con lo siguiente , tengo un boton  en el cual  tengo un ciclo que recorre un gridviewe para obtener los datos que hay este y los cargo en una lista  para imprimirlos en un reportviewer , sucede que cuando intento  crear una instancia del fromularioWEB donde se encuentra el reportviewer1 no me saca error ,  como puedo llamar el form2  en el form1 donde estoy haciendo el proceso anteriormente mencionado, este es el codigo que tengo.Espero me puedan ayudar.

      protected void Button1_Click(object sender, EventArgs e)
            {
                

                ReportDataSource report = new ReportDataSource();
                List<Productos> Listas = new  List<Productos>();
                Listas.Clear();

                for (int i = 0; i < dgvRemision.Rows.Count - 1; i++)
                {
                    lista.Add(new Productos
                    {
                        Codigo = dgvRemision.Rows[i].Cells[0].Text.ToString(),
                        Descrip = dgvRemision.Rows[i].Cells[0].Text.ToString(),
                        Existen = Convert.ToDecimal(dgvRemision.Rows[i].Cells[0].Text.ToString()),
                        Bodega = dgvRemision.Rows[i].Cells[0].Text.ToString(),
                        Monto = Convert.ToDecimal(dgvRemision.Rows[i].Cells[0].Text.ToString()),



                    });

                    report.Name = "DataSet1";
                    report.Value = Listas;
                  Form2  rs  = new form2(); aca quiero crear la instancia 


                }

                Response.Redirect("Report.aspx");
            }


    Daniel

    miércoles, 1 de abril de 2020 18:02

Respuestas

  • Amigos finalmente logre obtener los datos del grid y almacenarlos en un list , les comparto como lo hice por si alguien lo llaga a nacesitar , muchas gracias  por su ayuda.

     var Listas = new List<Partes>();
                foreach (GridViewRow row in dgvRemision.Rows)
                {
                    
                   

                    Partes partes = new Partes();
                    partes.Codigo = row.Cells[0].Text.ToString();
                    partes.Referencia = row.Cells[1].Text.ToString();
                    partes.Descrip = row.Cells[2].Text.ToString();
                    partes.Existen =row.Cells[3].Text.ToString();
                    partes.Bodega = row.Cells[4].Text.ToString();
                    DropDownList drop = row.Cells[5].FindControl("drplote") as DropDownList;
                    partes.Lote = drop.Text.ToString();
                    TextBox txtCantidad = row.Cells[6].FindControl("txtCantidad") as TextBox;
                    partes.Cantidad = txtCantidad.Text.ToString();
                    TextBox textVf = row.Cells[7].FindControl("txtFechaV") as TextBox;
                    partes.FechaV =textVf.Text.ToString();
                    partes.Monto = row.Cells[8].Text.ToString();
                    TextBox txtEnviar = row.Cells[9].FindControl("Enviar") as TextBox;
                    partes.Enviar = txtEnviar.Text.ToString();

                    Listas.Add(partes);

                }

                Session["ListaPartes"] = Listas;


    Daniel

    • Marcado como respuesta Dannycv012 viernes, 3 de abril de 2020 19:03
    viernes, 3 de abril de 2020 19:03

Todas las respuestas

  • hola

    >>sucede que cuando intento  crear una instancia del fromularioWEB

    los web form no se instancian, no es winform, no aplica eso del "new"

    Los web form se navegan

    Si vas a pasar informacion debes ponerla en el objeto Session desde un form y luego tomarla en el otro form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    miércoles, 1 de abril de 2020 18:11
  • Leandro entonces puedo hacer esto en el form1

                      

    for (int i = 0; i < dgvRemision.Rows.Count - 1; i++)
                {

                    Session["Codigo"] = dgvRemision.Rows[i].Cells[0].Text.ToString();
                    Session["Descrip"] = dgvRemision.Rows[i].Cells[0].Text.ToString();
                     Session["Existen"] = Convert.ToDecimal(dgvRemision.Rows[i].Cells[0].Text.ToString()),



                }

    y en el form 2  donde  esta el report seria asi

     //ReportDataSource report = new ReportDataSource();
                //List<Productos> Listas = new  List<Productos>();

     lista.Add(new Productos
                    {
                        Codigo =   Session["Codigo"].ToString();
                        Descrip =Session["Descrip"].ToString();
                        Existen = Session["Existe"].ToString();
         
                    });

                    report.Name = "DataSet1";
                    report.Value = Listas;


    Daniel

    miércoles, 1 de abril de 2020 18:26
  • hola

    En realidad deebrias crear la lista en el form1

    var lista = new List<Productos>();
    
    foreach (var row in dgvRemision.Rows)
    {
    	lista.Add(new Productos
    			{
    				Codigo =   row.Cells[0].Text.ToString(),
    				Descrip = row.Cells[0].Text.ToString();
    				Existen = Convert.ToDecimal(row.Cells[0].Text.ToString());
     
    			});
    
    }
    
    Session["listaProductos"] = lista;

    despeus en el form2 solo tomas la lista de una unica key de la Session


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 1 de abril de 2020 18:39
  • Leandro por que cuando intento declarar 

    lista.Add(new Productos
    			{
    				Codigo =   row.Cells[0].Text.ToString(),
    				Descrip = row.Cells[0].Text.ToString();
    				Existen = Convert.ToDecimal(row.Cells[0].Text.ToString());
     
    			});

    me salar error en  row y no lo reconoce para trae el Cell


    Daniel

    jueves, 2 de abril de 2020 21:16
  • Amigos finalmente logre obtener los datos del grid y almacenarlos en un list , les comparto como lo hice por si alguien lo llaga a nacesitar , muchas gracias  por su ayuda.

     var Listas = new List<Partes>();
                foreach (GridViewRow row in dgvRemision.Rows)
                {
                    
                   

                    Partes partes = new Partes();
                    partes.Codigo = row.Cells[0].Text.ToString();
                    partes.Referencia = row.Cells[1].Text.ToString();
                    partes.Descrip = row.Cells[2].Text.ToString();
                    partes.Existen =row.Cells[3].Text.ToString();
                    partes.Bodega = row.Cells[4].Text.ToString();
                    DropDownList drop = row.Cells[5].FindControl("drplote") as DropDownList;
                    partes.Lote = drop.Text.ToString();
                    TextBox txtCantidad = row.Cells[6].FindControl("txtCantidad") as TextBox;
                    partes.Cantidad = txtCantidad.Text.ToString();
                    TextBox textVf = row.Cells[7].FindControl("txtFechaV") as TextBox;
                    partes.FechaV =textVf.Text.ToString();
                    partes.Monto = row.Cells[8].Text.ToString();
                    TextBox txtEnviar = row.Cells[9].FindControl("Enviar") as TextBox;
                    partes.Enviar = txtEnviar.Text.ToString();

                    Listas.Add(partes);

                }

                Session["ListaPartes"] = Listas;


    Daniel

    • Marcado como respuesta Dannycv012 viernes, 3 de abril de 2020 19:03
    viernes, 3 de abril de 2020 19:03
  • Hola

     

     

    Gracias por levantar tu consulta en los foros de MSDN. Cerraremos el Hilo, por ende si tiene alguna otra consulta por favor genera otra consulta para que la comunidad de foros te pueda asesorar.

     

    Siempre es un placer atender tus consultas!

     

    Gracias por usar los foros de MSDN.

     

    Oscar Navarro

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. 

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    lunes, 13 de abril de 2020 16:14
    Moderador