只是想问一下如何在过滤后获取 DataGridView
中选定行的原始行索引。
我有包含 2 列的 DataGridView
:姓名和年龄。我有一个用作过滤器的 TextBox
。假设我有 8 条记录,过滤后只有 4 条记录,单击最后一条记录后,我得到行索引 4,而我需要获取该行的原始索引并将其显示在 MessageBox
。我将如何做?
谢谢。
最佳答案
原始行索引表示DataRow
的索引在DataTable
可以通过DataTable.Rows.IndexOf(row)
找到.因此,要找到该行的原始索引,您可以使用以下代码:
var r = ((DataRowView)BindingContext[dataGridView1.DataSource].Current).Row;
var index = r.Table.Rows.IndexOf(r);
如果您有兴趣对 DataGridView
中的所有行执行此操作,正如 Taw 在评论中提到的,您可以查看 DataBoundItem
的 DataGridViewRow
:
var r = ((DataRowView)dgvRow.DataBoundItem).Row; // dgvRow is a row of the DataGridView
var index = r.Table.Rows.IndexOf(r);
关于c# - 在数据 GridView 中过滤后显示原始行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50999121/