【问题标题】:how to set a datagridview column to date format如何将datagridview列设置为日期格式
【发布时间】:2014-06-26 18:45:21
【问题描述】:

我创建了一个 DataGridView 并像这样向它添加列:

Dim col_1 = New DataGridViewTextBoxColumn
col_1.Name = "Date"
col_1.DefaultCellStyle.Format = "MM/dd/yyyy"
data_grid.Columns.Add(col_1)

然后我像这样将数据添加到列中:

data_grid.Item(1,1).Value = temp_date 

网格中填充了正确的数据并且一切正常,但是...当我单击列标题时,显示日期的列没有正确排序(它按字母顺序排序),我知道这是因为我设置它作为“DataGridViewTextBoxColumn”,但没有日期类型列的选项。那么如何将其设置为日期列,以便根据单击标题时的日期进行排序?

谢谢。

【问题讨论】:

  • temp_date 的数据类型是什么?是字符串吗?
  • 是的,temp_date的数据类型是String。

标签: vb.net datagridview


【解决方案1】:

您还应该设置列的ValueType

DataGridView1.Columns(0).ValueType = GetType(Date)

然后将date_temp 转换为日期值,然后再将其分配给单元格的值。

使用CDate 可能是您的第一次尝试:

data_grid.Item(1,1).Value = CDate(temp_date)

否则,请调查ParseTryParseConvert,以获得日期值。

【讨论】:

  • 好的,我这样做了,现在它似乎是根据日期排序的,但它是先按天排序,然后按年排序,而月份似乎被忽略了。我将格式设置为 MM/dd/yyyy。所以现在当我点击标题 (DESC) 时,它将从 30 日到 1 日对整个 7 月进行排序,然后从 31 日到 1 日对 8 月进行排序。如果是 Desc,那么月份也应该下降。
  • 如何发布屏幕截图以向您展示我的意思?
  • 我会调查 DateTime.ParseExact 以获取与您应用的格式匹配的日期。
  • 它正在工作。将 DateTime 的数据类型分配给 temp_date 变量就是这样做的,但设置 ValueType 可能也可以。我没有注意到岁月已经过去了。它现在正在正确排序。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-26
  • 2016-08-29
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
相关资源
最近更新 更多