gpt4 book ai didi

.net - DataGridView 对 DateTime 列中的空值进行排序

转载 作者:行者123 更新时间:2023-12-03 04:18:43 26 4
gpt4 key购买 nike

我在 Windows 窗体应用程序中有一个 DataGridView 控件。有四列包含字符串数据,三列包含日期时间数据。我使用 Rows.Add() 方法以编程方式添加行。所有列的 SortMode 设置为“自动”。单击列标题即可进行排序,但包含一些空值的 DateTime 列除外。当用户单击该列的标题时,它会引发 ArgumentException:对象必须是 DateTime 类型。

我知道解决这个问题的困难方法:将所有 SortModes 设置为 NotSortable,处理 ColumnHeaderMouseClick 事件并手动对整个事件进行排序。我正在寻找简单的方法。

是否有一个属性或我可以设置的东西,或者其他一些相对简单的方法来允许此列对其中的空值进行排序?

最佳答案

一个简单的解决方案是添加一个“tonull”函数,每次进行比较时都会运行 e.cellvalue1 和 2。如果值为“”,则如果您希望空值在排序中首先出现,则单元格的值将更改为 01/01/1001;如果您希望它们最后出现,则单元格的值将更改为 01/01/3001 或高得离谱的值。排序。

Private Sub dgvTable_SortCompare(ByVal sender As Object, ByVal e As DataGridViewSortCompareEventArgs) Handles dgvTable.SortCompare

If e.Column.Index = 4 Then

e.SortResult = System.DateTime.Compare(todatenull(e.CellValue1), todatenull(e.CellValue2))

End If

e.Handled = True
End Sub


Function todatenull(ByVal cellvalue)
If cellvalue = "" Then
Return "01/01/1001"
Else
Return cellvalue
End If
End Function

关于.net - DataGridView 对 DateTime 列中的空值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com