как установить столбец datagridview в формат даты

#vb.net #datagridview

#vb.net #datagridview

Вопрос:

Я создал 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», но для столбца типа даты нет опции. Итак, как мне настроить его как столбец даты, чтобы он сортировался на основе даты при нажатии на заголовок?

Спасибо.

Комментарии:

1. Что такое тип данных temp_date ? Это строка?

2. Да, тип данных temp_date — String .

Ответ №1:

Вы также должны установить ValueType значение столбца:

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

Затем преобразуйте date_temp в значение даты, прежде чем присваивать его значению ячейки.

Использование CDate может быть вашей первой попыткой:

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

в противном случае, исследуйте Parse TryParse или Convert , чтобы получить значение даты.

Комментарии:

1. Хорошо, я сделал это, и теперь, похоже, он сортируется по дате, но сначала сортируется по дням, а затем по годам, а месяц, похоже, игнорируется. Я установил формат как ММ / дд / гггг. Итак, теперь, когда я нажимаю на заголовок (DESC), он сортирует весь июль с 30-го по 1-е, а затем август с 31-го по первое. Если это Desc, то месяцы также должны уменьшаться.

2. Как мне опубликовать скриншот, чтобы показать вам, что я имею в виду?

3. Я бы исследовал дату и время. Выполните синтаксический анализ, чтобы получить дату, соответствующую примененному вами форматированию.

4. Теперь он работает. Назначение типа данных DateTime переменной temp_date — вот что это сделало, но установка ValueType, вероятно, также сработает. Я не заметил, что годы отключены. Теперь он сортируется правильно. Спасибо.