none
Boton para filtrar RRS feed

  • Pregunta

  • Buenos Días

    Amigos tengo la siguiente duda

    Tengo un boton que al pulsar me muestre en mi datagridview los que no tienen color

    Entonces asi es como actualmente estoy pintando las filas de mi datagrid

     private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
            {
                DataGridView grid = (DataGridView)sender;
                DataGridViewRow row = grid.Rows[e.RowIndex];
                string colorValue = row.Cells["color"].Value == DBNull.Value ? null : (string)row.Cells["color"].Value;
    
                switch (colorValue)
                {
    
    
                    case "dos":
                        row.DefaultCellStyle.BackColor = Color.BlueViolet;
                        row.DefaultCellStyle.ForeColor = Color.White;
                        break;
                    case "tres":
                        row.DefaultCellStyle.BackColor = Color.DarkSlateGray;
                        row.DefaultCellStyle.ForeColor = Color.White;
                        break;
                    case "cuatro":
                        row.DefaultCellStyle.BackColor = Color.Sienna;
                        row.DefaultCellStyle.ForeColor = Color.White;
                        break;
                    case "cin":
                        row.DefaultCellStyle.BackColor = Color.DarkOrange;
                        row.DefaultCellStyle.ForeColor = Color.White;
                        break;
                    case "seis":
                        row.DefaultCellStyle.BackColor = Color.Olive;
                        row.DefaultCellStyle.ForeColor = Color.White;
                        break;
                    case "siete":
                        row.DefaultCellStyle.BackColor = Color.DeepSkyBlue;
                        row.DefaultCellStyle.ForeColor = Color.White;
                        break;
                }
            }

    Como podría hacer para que al pulsar el boton me filtre en el datagrdi lo que no esta pintado

    saludos


    ruben

    viernes, 7 de octubre de 2016 8:40

Respuestas

  • hola

    entiendo usas la columna "color" para determinar el color, si este esta null entonces no tiene color

    podrias usar esto para obtener las rows no pintadas con la ayuda de linq

    var result = dataGridView1.Rows.Cast<DataGridViewRow>().Where(x=> x.Cells["color"].Value == DBNull.Value).ToList();

    con esto tendrias una lista de rows del grid

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Ruben Lezcano lunes, 10 de octubre de 2016 9:46
    viernes, 7 de octubre de 2016 12:57

Todas las respuestas

  • Aqui es donde relleno el color

    private DataTable GetDataTable()
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("id");
                dt.Columns.Add("pedidokey");
                dt.Columns.Add("riqi", typeof(DateTime));
                dt.Columns.Add("fecha_c", typeof(DateTime));
                dt.Columns.Add("kehuID");
                dt.Columns.Add("name");
                dt.Columns.Add("yewuyuanID");
                dt.Columns.Add("py");
                dt.Columns.Add("total", typeof(double));
                dt.Columns.Add("color");
                dt.Columns.Add("cif");
                dt.Columns.Add("tel");
                dt.Columns.Add("dizhi");
                dt.Columns.Add("chengshi");
                dt.Columns.Add("youbian");
                return dt;
            }

    Como ven hay una columna color

    Yo quiero que me filtre por todos los que la columna color sea null

    saludos


    ruben

    viernes, 7 de octubre de 2016 8:51
  • hola

    entiendo usas la columna "color" para determinar el color, si este esta null entonces no tiene color

    podrias usar esto para obtener las rows no pintadas con la ayuda de linq

    var result = dataGridView1.Rows.Cast<DataGridViewRow>().Where(x=> x.Cells["color"].Value == DBNull.Value).ToList();

    con esto tendrias una lista de rows del grid

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Ruben Lezcano lunes, 10 de octubre de 2016 9:46
    viernes, 7 de octubre de 2016 12:57
  • Gracias Leandro

    ruben

    lunes, 10 de octubre de 2016 9:46