【问题标题】:Filter rows in my DataGridView?在我的 DataGridView 中过滤行?
【发布时间】:2013-04-23 09:19:27
【问题描述】:

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

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

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

我不想像这样设置我的 DataGridView 的数据源:

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

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

您的帮助将不胜感激!

谢谢。

【问题讨论】:

  • 嗯,这实际上让我失望了请确保它有效......
  • 真的吗?如果您不确定它是否有效,请将其作为评论发布,只是一个建议就可以了,谢谢!
  • @V4Vendetta 另外,如果您的评论有帮助,我会通知您,然后我希望您发布官方答案。我的意思是我只需要一个建议,测试是给我的,我测试后你会知道结果。谢谢!
  • 别介意这不是使用 BindingSource 的正确方法,为什么你不想使用 BindingSource?

标签: c# binding datagridview datatable dataset


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 2010-12-02
    • 2015-04-10
    • 2014-08-05
    相关资源
    最近更新 更多