如何将过滤器添加到datagridview

时间:2015-12-18 02:59:12

标签: c# .net winforms csv datagridview

我正在尝试将csv文件加载到datagridview 现在我想添加过滤到datagridview

怎么办? 这是我如何阅读和加载csv文件

openFileDialog1.InitialDirectory = @"C:\";
openFileDialog1.Title = "Open CSV Files";
openFileDialog1.CheckFileExists = true;
openFileDialog1.CheckPathExists = true;
openFileDialog1.DefaultExt = "CSV";
openFileDialog1.Filter = "CSV files (*.csv)|*.csv|All files(*.*)|*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.RestoreDirectory = true;
try
{
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string csvPath = openFileDialog1.FileName;
        string rowValue;
        // int rowValue = int.Parse(??);
        string[] cellValue;
        dataGridView1.Rows.Clear();
        //dataGridView1.Columns.Clear();
        if (System.IO.File.Exists(csvPath))
        {
            System.IO.StreamReader fileReader = new StreamReader(csvPath);
            rowValue = fileReader.ReadLine();
            cellValue = rowValue.Split(',');



            for (int i = 0; i <= cellValue.Count() - 1; i++)
            {
                DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
                column.Name = cellValue[i];    //column name , value
                column.HeaderText = cellValue[i];
                dataGridView1.Columns.Add(column);
                // dataGridView1.Columns[].CellType = typeof(Int64);
                //Conver.ToString
                dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; // Korean? 칼럼 헤더 가운데 정렬
             //   dataGridView1.RowHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
               // dataGridView1.Columns[0].DataPropertyName = "field name";
            }
            while (fileReader.Peek() != -1)
            {
                rowValue = fileReader.ReadLine();
                cellValue = rowValue.Split(',');
                dataGridView1.Rows.Add(cellValue);
            }
            fileReader.Dispose();
            fileReader.Close();`

1 个答案:

答案 0 :(得分:6)

不是直接向DataGridView添加行,而是将其添加到DataTable,然后将该表设置为DataSource的{​​{1}},然后使用DataGridView过滤table.DefaultView.RowFilter

您只需使用以下示例更改代码即可。

创建一个DataTable:

DataGridView

将列添加到DataTable:

var table = new DataTable();

向DataTable添加行:

使用范围添加行,例如table.Columns.Add("column name");

string[]

将表格设置为table.Rows.Add(range);

DataSource
DataGridview

使用DataTable进行过滤:

要使用数据表进行过滤,例如仅显示dataGridView1.DataSource = table; FirstName的行:

John

了解详情:

相关问题