如何在DataGridView上使用RowFilter后访问记录?

时间:2014-02-18 06:27:30

标签: c# visual-studio-2010 datagridview dataset

我有一个DataGridView,我在其上使用了RowFilter,如下所示:

(dgv.DataSource as DataTable).DefaultView.RowFilter = whereClause;

在应用RowFilter DataGridView 1087 记录之前,之后,它有 8

现在我想处理这8条记录。

我如何访问它们?

2 个答案:

答案 0 :(得分:0)

如果你这样做

dgv.DataSource as DataTable

然后你可以做以下

dataTable dt = dgv.DataSource as DataTable;
DataRow[] rows = dt.Select("your filter goes here");

如果你愿意,你可以通过Linq做同样的事情。这些是您的行,您可以使用它们。并且只编辑这些记录:

DataGridView.DataSource = rows;

此外,您可以创建自定义DataView,它将按您希望的方式过滤记录,并将数据源设置为该视图。但请记住,关键在这里,无论你有多少观点 - 这都是你看到的数据表

DataView view = new DataView();

view.Table = dt;
view.RowFilter = "your filter";
view.Sort = "your sort";

答案 1 :(得分:0)

您可以使用DataGridViewRow.DataBoundItem访问基础数据。 如果与基础数据DataGridView绑定的DataView属于DataRowView类型。您可以使用以下代码:

var dataRow = dgv.Rows[rowIndex].DataBoundItem as DataRowView;