我有一个DataGridView,我在其上使用了RowFilter
,如下所示:
(dgv.DataSource as DataTable).DefaultView.RowFilter = whereClause;
在应用RowFilter
DataGridView
1087 记录之前,之后,它有 8 。
现在我想处理这8条记录。
我如何访问它们?
答案 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;