1

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

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 数据源,如何在该上下文中为它过滤行?请确保它有效并注意我在这里提到的内容。

您的帮助将不胜感激!

谢谢你。

4

1 回答 1

1

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

如果这不能让你的船浮起来,那么这来自另一个 SO 线程

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

于 2013-04-23T12:58:52.070 回答