Сортировка DataGridView по нескольким столбцам одновременно - C#
Формулировка задачи:
Доброй ночи уважаемые посетители.
Я столкнулся с очередной проблемой. Мне требуется отсортировать DataGridView по 2 и трем столбцам одновременно (как в экселе, с начало по А, потом по Б, потом по В).
По одному столбцу сортирует - проблем нет, сразу по двум - ума не прилажу как сделать.
Если кто знает буду благодарен, за пример кода вообще счастлив.
Ещё было классно если кто подскажет как его по человечески сортировать научить, а то столбец с цифрами и он их сортирует "1" "11" "2" "22" "3" "33".
Решение задачи: «Сортировка DataGridView по нескольким столбцам одновременно»
textual
Листинг программы
- private void DGVElementsItems_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
- {
- int CompareResult = 0;
- for (int ColIndex = e.Column.Index; ColIndex < DGVElementsItems.Columns.Count; ColIndex++)
- {
- int CellVavue1 = 0;
- int CellVavue2 = 0;
- if (int.TryParse(DGVElementsItems[ColIndex, e.RowIndex1].Value.ToString(), out CellVavue1) &&
- int.TryParse(DGVElementsItems[ColIndex, e.RowIndex2].Value.ToString(), out CellVavue2))
- {
- if (CellVavue1 > CellVavue2)
- CompareResult = 1;
- else if (CellVavue1 < CellVavue2)
- CompareResult = -1;
- else if (CellVavue1 == CellVavue2)
- CompareResult = 0;
- }
- else
- {
- CompareResult = System.String.Compare(
- DGVElementsItems[ColIndex, e.RowIndex1].Value.ToString(),
- DGVElementsItems[ColIndex, e.RowIndex2].Value.ToString()
- );
- }
- if (CompareResult != 0)
- {
- break;
- }
- }
- e.SortResult = CompareResult;
- e.Handled = true;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д