我有两个问题:
有没有办法按列对DataGridView
进行排序 - 我想使用代码执行此操作,以便我的某个方法可以对DataGridView
进行排序。 (与用户单击列标题但没有单击的效果相同。)
当我对具有decimal
值(类型为double
)的列进行排序时,排序认为9.99大于24.99 - 有没有办法阻止这种类型的排序行为?< / p>
更新:由于评论中的链接,问题1已解决。
我还发现了问题的原因问题2:我的列中的值是(double)price + "€"
。我尝试删除+ "€"
,它开始按我想要的方式排序。
现在我希望它能够排序,同时保持€。不知何故。
答案 0 :(得分:0)
由于第一个问题被stuartd正确涵盖,我们将专注于第二个问题:
当我对具有
decimal
值(类型为double
)的列进行排序时,排序认为9.99大于24.99 - 有没有办法阻止这种类型的排序行为?
正如您所注意到的,删除+ "€"
更正了您的问题,因为带有该列正在执行string
比较而不是预期的double
比较。您可以使用CultureInfo将列格式化为货币列来解决此问题。
CultureInfo ci = new CultureInfo("fr-FR");
this.dataGridView1.Columns[0].DefaultCellStyle.FormatProvider = ci.NumberFormat;
this.dataGridView1.Columns[0].DefaultCellStyle.Format = "c";