过滤我的DataGridView中的行?

时间:2013-04-23 09:19:27

标签: c# binding datagridview datatable dataset

这并不容易,据我所知,我只能在为DataTable(使用DefaultView.RowFilter)或BindingSource(使用Filter)分配DataSource时过滤DataGridView中的行。但是我的DataGridView DataSource是这样的:

myDataGridView.DataSource = myDataSet;
myDataGridView.DataMember = "myTableName";
//filtering rows using myDataSet.Tables["myTableName"].RowFilter = "..." doesn't work.

myDataSet几乎绑定到我的表单上的某些控件,我不想在myDataGridView的DataSource更改时重新绑定它。

我不想像我这样设置DataGridView的DataSource:

myDataGridView.DataSource = myDataTable;
//then use myDataTable.DefaultView.RowFilter = "...";
//or
BindingSource bs = new BindingSource(myDataSet, "myTableName");
myDataGridView.DataSource = bs;
//then use bs.Filter = "..."

我只想在第一个代码中使用DataGridView数据源,如何在该上下文中为其过滤行?请确保它有效,并注意我在这里提到的内容。

非常感谢您的帮助!

谢谢。

1 个答案:

答案 0 :(得分:1)

尝试myDataSet.Tables["myTableName"].DefaultView.RowFilter = "..."

如果那不漂浮你的船,那么这来自another SO thread

(dataGridViewFields.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", textBoxFilter.Text);