Сортировать правильно по времени открытия - PullRequest
0 голосов
/ 28 июля 2011

У меня есть столбец в XtraGrid, который показывает время, прошедшее с момента вставки записи.Я вычисляю это на сервере и возвращаю время в виде строки.

Проблема в том, что он не отсортирован правильно, пожалуйста, посмотрите изображение, как 9 дней больше, чем 23 дня ...

Sort Problem

Есть идеи, как сделать так, чтобы сортировка работала лучше?

Ответы [ 2 ]

2 голосов
/ 02 августа 2011

Один из способов обойти это - сохранить ваши значения в базе данных как int64 как тики, поэтому вы можете выполнить сортировку на стороне сервера, а затем на стороне приложения создать временные интервалы из тиков, и вы можете обрабатывать CustomColumnDisplayText , чтобы отобразить его так, как вы хотите, убедившись, что ваш столбец настроен на сортировку по значению, а не DisplayText.

Пример

Внутри события CustomDisplayText вашего места GridView

TimeSpan span = TimeSpan.FromTicks(e.Value);
e.DisplayText = string.Format("{0} days {1} hours {2} minutes", span.Days, span.Hours, span.Minutes);
0 голосов
/ 28 июля 2011

Вы можете отсортировать его на сервере как часть вашего оператора SQL (я полагаю, вы получаете это из БД).Другой вариант - написать свою собственную функцию сравнения, которая будет включать анализ времени обратно в некоторый тип временного интервала и сортировку по нему.

...