none
agregar fila al lanzar evento de uno boton en el gridview RRS feed

  • Pregunta

  • buenas noches , amigos  tengo un gridview con una  columna que tiene un boton para agregar ,   el funcionamiento de esta lo logre con commadnane y commadArgument ,  lo que  hace es que al momento de hacer click en ese boton , este evalua el indice de la fila que lanza el evento y me dublica esa misma fila debajo para seleccionar otro lote. para esto use un list este lo puse a que cargara en forma ascendente  segun la referencia , el problema  es que cuando lanzo el evento este me carga el item  seleccionado debajo como debe ser , pero me  coloca el item que ingrese de ultimo  en otra posicion   ya que evalua  ascendentemente , hay alguna forma de controlar esto sin tener que utilizar order by en list. que cada item conserve su posición  y que si quieren  duplicar  una fila lo haga simpre debaja de la seleccionada.

    les comparto mi codigo

     protected void dgvRemision_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                List<Productos> ListaA = (List<Productos>)Session["Producto"];  

                if (e.CommandName == "agregar") {
                    int index;
                    bool bIsConverted = int.TryParse(e.CommandArgument.ToString(), out index);


                    GridViewRow row = dgvRemision.Rows[index];


                    Productos Productos = new Productos();

                    //string Codigo = Productos.Codigo;
                    Productos.Codigo = row.Cells[0].Text;
                    string codigo = Productos.Codigo;
                    Productos.Referencia = row.Cells[1].Text;
                    string Referencia = Productos.Referencia;
                    Productos.Descrip = row.Cells[2].Text;
                    Productos.Existen = Convert.ToInt32(row.Cells[3].Text);
                    TextBox txtenviar = row.Cells[7].FindControl("Enviar") as TextBox;
                    Productos.Cantidad = Convert.ToDecimal(txtenviar.Text);
                    TextBox txtMonto = row.Cells[8].FindControl("txtMonto") as TextBox;
                    Productos.Monto = Convert.ToDecimal(txtMonto.Text);
                   

                    ListaA.Add(Productos);
      
                    dgvRemision.DataSource = ListaA.OrderBy(o => o.Referencia).ToList();
                    dgvRemision.DataBind();


                    
                }

    }


    Daniel

    sábado, 13 de junio de 2020 1:52

Todas las respuestas

  • Danny puedes reformular tu consulta para entenderla mejor? 

    Gracias y saludos!

    lunes, 15 de junio de 2020 21:16
    Moderador
  • Oscar tengo en  mi gridview un  ItemTemplate el cual  es boton para agregar una nueva fila , resulta que yo con una consulta  lleno el gridview  , y si alguno de los items en este no tiene   la cantidad solicitada disponible entoces yo le doy click al boton agregarnuevafila y me duplica esa fila debajo de la ya antes mensionada para yo seleccionar otro lote y repartir la cantidad solicitada entre las dos filas. esto que acabo de mencionar ya lo hago , pero  este resultado lo consegui con un orderby por referencia asi ListaA.OrderBy(o => o.Referencia).ToList(); , el problema es que cuando  intento cargar otro item diferente en el gridview este debe cargar en el ultima fila  , pero como yo puse que en el list  orderby por referencia , este ultimo carga segun ese orden.como puedo hacer este procedimiento para que al momento de  dar click en el boton agregarnuevafila  esta se agregue debajo de la fila  que lanzo el evento sin utilizar orderby

    Daniel

    lunes, 15 de junio de 2020 22:35