【发布时间】:2015-10-26 19:36:06
【问题描述】:
我正在使用 datagridview 来显示 csv 文件中的数据。 datagridview 中数值类型的列之一 [列名:ID]。
我正在使用 datagridview 的自动排序方法(通过单击列标题进行排序)。 这适用于除此数字列之外的所有列。 此列包含数字 1 到 55
排序后我现在得到的是:
1,10,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,29,3,30,31...
...等等。我想要的是:
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,...
请帮忙。 提前致谢。
【问题讨论】:
-
“ID”列存储为字符串。这就是为什么它被排序为 1, 10, 11,... 你能发布一些代码吗?
-
private void btnSort_Click_1(object sender, EventArgs e) { foreach (DataGridViewColumn column in Grid.Columns) { Grid.Columns[column.Name].SortMode = DataGridViewColumnSortMode.Automatic; } }
-
看看@lem2802 的答案,我想这正是您要寻找的。问题是,如果您读取 csv 文件,所有值都是字符串。 DataGridview 只是按字符值对字符串进行排序。
-
有人可以评论一下如何从 csv 获取数据到 datagridview 以便进行这种排序吗?
-
是的,您可以创建一个容器(例如 DataTable)并将此容器用作 DataSource。在将 ID 存储在 DataTable 中之前,您必须将其转换为 Integer。如果你愿意,我可以发布一些代码作为答案。
标签: c# sorting datagridview