none
Busqueda en data grid view RRS feed

  • Pregunta

  • Hola que tal mi cuestion es la siguiente

    Deceo localizar un producto ubicado en un datagrid el cual escribo en una caja de texto y al dar click en buscar me lleve al renglon donde se encuentra

    la forma en que lleno los datos en el dgv es mediante un datatable como podria hacer esto?

    miércoles, 18 de abril de 2012 0:15

Respuestas

Todas las respuestas

  • hola

    no has evaluado suar linq para la busqueda

    DataGridView – Búsqueda con Linq

    quzias en tu caso sea mas directo la busqueda sin llegar a las celdas pero la tecncia es la misam con liqn podrias buscar bien simple un valor y seelccionar en el grid

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 18 de abril de 2012 0:21
  • la forma en que lleno mi datagird es mediante un data table el cual tiene Articulo,Descripcion,Min,Max,Disponible por lo que creo yo que las columna comienzan a contar 0,1,2,3,4,5

    ok eh puesto tu codigo pero no me raliza nada noce en que estare fallando lo pongo de la siguiente manera:

    List<DataGridViewRow>  rows = (from item in InvDgvInfoArt.Rows.Cast<DataGridViewRow>()
                                            let Articulo = Convert.ToString(item.Cells[0].Value ?? string.Empty)                                       
                                    where Articulo.Contains(InvTxtBuscarA.text) 
                                    select item).ToList<DataGridViewRow>();
    
    foreach (DataGridViewRow row in rows)
     {
         List<DataGridViewCell> cells = (from item in row.Cells.Cast<DataGridViewCell>() 
                                                let cell = Convert.ToString(item.Value)
                                         where cell.Contains(InvTxtBuscarA.text)
                                         select item).ToList<DataGridViewCell>();
    
         foreach (DataGridViewCell item in cells)
         {
             item.Selected = true;
         }
         
     }


    miércoles, 18 de abril de 2012 0:34
  • bueno eh descubierto que si me realiza la busqueda pero no me envia al articulo tengo que bajarlo con el scroll existe alguna forma de hacerlo o que simplemente me deje ese rengo que encontro?
    miércoles, 18 de abril de 2012 0:46
  • MIRE EN OTRO DE TUS FOROS Y ME ENCONTRE

     InvDgvInfoArt.FirstDisplayedScrollingRowIndex = row.Index; EL CUAL ME ENVIA DIRECTAMENTE A LA COLUMNA PERO ME SURGE OTRO PROBLEMA EL PRIMERO ES QUE CADA VEZ QUE REALIZO UNA BUSQUEDA NO PIERDE LA SELEECION Y EL OTRO PROBLEM BUENO MAS BIEN ME GUSTARIA QUE SE SELECIONARA TODO EL RENGLON UNA VEZ QUE ENCUENTA EL VALOR QUE ESTOY BUSCANDO EN LA COLUMNA LO HAGO DE ESTA FORMA PORFA OJA Y ME PUDIERAS AYUDAR PORQUE SI ANDO ALGO ATRAZADO CON ESTO

     List<DataGridViewRow> rows = (from item in InvDgvInfoArt.Rows.Cast<DataGridViewRow>()
                                              let Articulo = Convert.ToString(item.Cells[0].Value ?? string.Empty)
                                              where Articulo.Contains(InvTxtBuscarA.Text)
                                             select item).ToList<DataGridViewRow>();
    
                foreach (DataGridViewRow row in rows)
                {
                    List<DataGridViewCell> cells = (from item in row.Cells.Cast<DataGridViewCell>()
                                                    let cell = Convert.ToString(item.Value)
                                                    where cell.Contains(InvTxtBuscarA.Text)
                                                    select item).ToList<DataGridViewCell>();
    
                    foreach (DataGridViewCell item in cells)
                    {
                        for (int I = 0; I < InvDgvInfoArt.Rows.Count; I++)
                        {
                            
                            item.Selected = true;
                            InvDgvInfoArt.FirstDisplayedScrollingRowIndex = row.Index;                       
    
                        }
                       
                    }
    
                }

    miércoles, 18 de abril de 2012 1:39
  • busqueda pero no me envia al articulo tengo que bajarlo con el scroll

    usa el

    FirstDisplayedScrollingRowIndex

    para posicionar el registro seleccionado

    te recomiendo que el ejemplo anterio puede simpleficarlo si seleccionas solo a nivel de row, o sea si buscas por uan fila no ahce falta que luego busques por la celdas

    podrias dejarlo en

    foreach (DataGridViewRow row in rows)
    {
       row.Selected = true;
    }

    para marcar la fila buscada

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 18 de abril de 2012 1:41
  • ECXELENTE ME SELECCIONA TODO SOLO QUE NO PIERDE LAS SELECCIONES ANTERIORES EXISTE FORMA DE EVITARLO?
    miércoles, 18 de abril de 2012 1:48
  • es que antes de cada busqueda deberias usar


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 18 de abril de 2012 2:06
  • MUCHAS GRACIAS LEANDRO ERES MUY AMABLE AL AYUDARME A MI Y ALOS DEMAS DE CUALQUIER FORMA EXPONGO EL CODIGO YA COMO ME QUEDO POR SI ALGUIEN LLEGARA A MIRAR ESTE POST

    InvDgvInfoArt.ClearSelection();
                List<DataGridViewRow> rows = (from item in InvDgvInfoArt.Rows.Cast<DataGridViewRow>()
                                              let Articulo = Convert.ToString(item.Cells[0].Value ?? string.Empty)
                                              where Articulo.Contains(InvTxtBuscarA.Text)
                                             select item).ToList<DataGridViewRow>();
    
                foreach (DataGridViewRow row in rows)
                {
                    List<DataGridViewCell> cells = (from item in row.Cells.Cast<DataGridViewCell>()
                                                    let cell = Convert.ToString(item.Value)
                                                    where cell.Contains(InvTxtBuscarA.Text)
                                                    select item).ToList<DataGridViewCell>();
    
                    foreach (DataGridViewCell item in cells)
                    {
                        row.Selected = true;
                   
                    }
                }

    miércoles, 18 de abril de 2012 15:30