Альфа-сортировка .Net Gridview, ее необходимо отсортировать в числовом виде.

StackOverflow https://stackoverflow.com/questions/79736

  •  09-06-2019
  •  | 
  •  

Вопрос

Это мой первый реальный вопрос о том, нужен ли кто-либо из экспертов Gridview в мире .NET.

Я создаю Gridview из кода программной части и храню в столбцах кучу числовых данных.Хотя я добавляю запятую в числовые поля из кода программной части.Когда я загружаю его в Gridview, у меня включена возможность сортировки, НО GridView выбирает сортировку АЛЬФА, а не числовую сортировку, потому что я добавляю эти запятые.

Поэтому мне нужна помощь.Кто-нибудь готов попробовать?Мне нужно изменить некоторые из моих столбцов в представлении сетки на числовую сортировку, а не на альфа-сортировку, которую она использует.

Это было полезно?

Решение 4

Вместо этого я просто прибегнул к сортировщику таблиц JQUERY.

можно найти здесь: сортировщик столов

Другие советы

Если вы в конечном итоге реализуете свой собственный компаратор и сортируете их как строки, алгоритм «правильной» обработки чисел называется естественной сортировкой.Джефф написал довольно хорошую запись об этом здесь:
Сортировка для людей:Естественный порядок сортировки

Вы можете найти довольно хорошую реализацию на C# здесь:
http://www.codeproject.com/KB/string/NaturalSortComparer.aspx

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

P-Invoke — ваш друг.

[DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)]
private static extern int StrCmpLogicalW(string psz1, string psz2);

Тогда вы можете использовать его в качестве собственного средства сравнения.

Например (в VS2005),

Array.Sort(tringArray, delegate(string left, string right)
{
    return StrCmpLogicalW(left, right);
});

Я понимаю, что это действительно устарело, но вы смешиваете данные с представлением;вот что портит ситуацию.Получите число из SQL без добавления запятых, а затем добавьте его на уровень представления.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top