代码之家  ›  专栏  ›  技术社区  ›  user4433485

如何过滤数据网格视图数据源中的信息?

  •  0
  • user4433485  · 技术社区  · 9 年前

    首先,我很抱歉我的问题,我知道这很常见,我读过 How to use textbox to search data in data grid view? 没有成功

    我刚接触C#,这是我第一次尝试它!

    private void textBox1_TextChanged(object sender, EventArgs e)
        {
            (tableDataGridView.DataSource as DataTable).DefaultView.RowFilter = string.Format("Id LIKE '%{0}%'",
                                                        "Merk LIKE '%{0}%'",
                                                        "Model LIKE '%{0}%'",
                                                        "Bouwjaar LIKE '%{0}%'",
                                                        "Problemen LIKE '%{0}%'", textBox1.Text);
        }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Nicolas C    9 年前

    为了过滤数据网格中的行,我使用了一个数据视图,我的数据网格项源设置了如下数据表:

    myDatagrid.ItemSource = myDataTable.defaultview; \\all rows are visible
    

    我为过滤设置了一个字符串,您可以使用string.format:

     string strFilter = String.Format("columName1 LIKE {0} AND columnName2 < {1}", var1,var2); \\use LIKE to find equality between string values but you can also compare DateTime... like I do it in my sample with columnName2
    

    并设置一个数据视图来过滤数据网格

     DataView dv = new DataView(myDataTable, strFilter, "columnName2 DESC", DataViewRowState.CurrentRows);
    

    参数1:数据网格myDataTable的ItemSource 2:过滤器字符串 3:可以对生成的行进行排序 4: 表示应用筛选器的行

    最后,您需要使用新的数据视图刷新数据网格

    myDataGrid.ItemSource = dv;