#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, вероятно, также сработает. Я не заметил, что годы отключены. Теперь он сортируется правильно. Спасибо.