c# - 在数据 GridView 中过滤后显示原始行索引

标签 c# .net winforms datagridview

只是想问一下如何在过滤后获取 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 在评论中提到的,您可以查看 DataBoundItemDataGridViewRow :

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/

相关文章:

c# - C# 中的调用和委托(delegate)

c# - MVC MusicStore Artist.Name 对象引用未设置为对象的实例

c# - 在 C#.NET 中为 Web 服务应用程序使用选择查询

java - C# - 在一行中将多个元素添加到 IList

c# - 让鼠标指针进行 super 跳跃?

c# - 如何指定 .NET 泛型约束中不允许的类型?

c# - API 调用的 JSON 返回类型

c# - 当从右到左为真时背景图像不显示

c# - 用于胖客户端的客户端缓存库/框架

c# - 突出显示组合框中的特定项目