[英]How add filter to 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();`
不是直接向DataGridView
添加行,而是將它們添加到DataTable
,然后將該表設置為DataGridView
DataSource
,然后使用該table.DefaultView.RowFilter
過濾DataGridView
。
您只需使用以下示例更改代碼即可。
創建一個DataTable:
var table = new DataTable();
將列添加到DataTable:
table.Columns.Add("column name");
向DataTable添加行:
要使用范圍添加行,例如string[]
:
table.Rows.Add(range);
將表設置為DataGridview
DataSource
dataGridView1.DataSource = table;
使用DataTable過濾:
要使用數據表進行過濾,例如僅顯示FirstName
為John
行:
((DataTable)dataGridView1.DataSource).DefaultView.RowFilter = "FirstName = 'John'";
學到更多:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.