Альфа-сортировка .Net Gridview, ее необходимо отсортировать в числовом виде.
Вопрос
Это мой первый реальный вопрос о том, нужен ли кто-либо из экспертов 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 без добавления запятых, а затем добавьте его на уровень представления.