我有一个DataGridView,我在其中填充数值数据。我还设法编写代码以显示Row HeaderCell属性中的行号。为此,我使用以下代码:
foreach(DataGridViewRow row in datagridview.Rows)
row.HeaderCell.Value = (row.Index + 1).ToString();
还启用了每列的排序功能,当我单击Column HeaderCell时,该列中的数据会正确排列(排序)。但问题是即使排序后行号也没有改变以反映原始未排序的数据。例如:
当数据加载到DataGridView上时,它看起来像这样:
| Col1 | Col2
----------------
1| 5 | num1
2| 2 | num2
3| 7 | num3
点击Col1后,DataGridView的排序如下:
| Col1 >| Col2
----------------
1| 2 | num2
2| 5 | num1
3| 7 | num3
但我希望它是这样的:
| Col1 >| Col2
----------------
2| 2 | num2
1| 5 | num1
3| 7 | num3
我知道如何轻松实现这一目标吗?
答案 0 :(得分:0)
您应该在数据源中添加一个字段(rownumber)。 排序后你可以做这样的事情。
foreach(DataGridViewRow row in datagridview.Rows)
row.HeaderCell.Value = row["rownumber"].ToString();