Сортировка DataGridView по нескольким столбцам одновременно - C#

Узнай цену своей работы

Формулировка задачи:

Доброй ночи уважаемые посетители. Я столкнулся с очередной проблемой. Мне требуется отсортировать DataGridView по 2 и трем столбцам одновременно (как в экселе, с начало по А, потом по Б, потом по В). По одному столбцу сортирует - проблем нет, сразу по двум - ума не прилажу как сделать. Если кто знает буду благодарен, за пример кода вообще счастлив. Ещё было классно если кто подскажет как его по человечески сортировать научить, а то столбец с цифрами и он их сортирует "1" "11" "2" "22" "3" "33".

Решение задачи: «Сортировка DataGridView по нескольким столбцам одновременно»

textual
Листинг программы
  1. private void DGVElementsItems_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
  2. {
  3.     int CompareResult = 0;
  4.  
  5.     for (int ColIndex = e.Column.Index; ColIndex < DGVElementsItems.Columns.Count; ColIndex++)
  6.     {
  7.         int CellVavue1 = 0;
  8.         int CellVavue2 = 0;
  9.         if (int.TryParse(DGVElementsItems[ColIndex, e.RowIndex1].Value.ToString(), out CellVavue1) &&
  10.             int.TryParse(DGVElementsItems[ColIndex, e.RowIndex2].Value.ToString(), out CellVavue2))
  11.         {
  12.             if (CellVavue1 > CellVavue2)
  13.                 CompareResult = 1;
  14.             else if (CellVavue1 < CellVavue2)
  15.                 CompareResult = -1;
  16.             else if (CellVavue1 == CellVavue2)
  17.                 CompareResult = 0;
  18.         }
  19.         else
  20.         {
  21.             CompareResult = System.String.Compare(
  22.                                                 DGVElementsItems[ColIndex, e.RowIndex1].Value.ToString(),
  23.                                                 DGVElementsItems[ColIndex, e.RowIndex2].Value.ToString()
  24.                                                 );
  25.         }
  26.         if (CompareResult != 0)
  27.         {
  28.             break;
  29.         }
  30.     }
  31.  
  32.     e.SortResult = CompareResult;
  33.     e.Handled = true;
  34. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы