C#datagridview排序问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#datagridview排序问题相关的知识,希望对你有一定的参考价值。
1.点击datagridview的columnheader排序只能单列排序,
如何多列同时排序?
2.如何回到没有排序前的状态?
3.如何定位的新增加的记录上?并且在排序的状态下也能定位。
排序DatagridView列后显示正确的行号[C#WinForm]
我有一个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
知道如何轻松实现这一目标吗?
答案
您应该在数据源中添加一个字段(行号)。排序后你可以做这样的事情。
foreach(DataGridViewRow row in datagridview.Rows)
row.HeaderCell.Value = row["rownumber"].ToString();
以上是关于C#datagridview排序问题的主要内容,如果未能解决你的问题,请参考以下文章
DataGridView 与组合框列显示 System.Data.DataRowView 而不是 DisplayMember
C# Windows 窗体(非 SQL):在新窗体上用整数 +1 填充 DataGridView 行中当前最高数字的文本框
将 DataTable 绑定到已定义列的 Datagridview
如何允许用户在 c# 中的 datagridview 组合框中手动输入