Альфа-сортировка .Net Gridview, она должна быть отсортирована по номерам - PullRequest
0 голосов
/ 17 сентября 2008

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

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

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

Ответы [ 5 ]

1 голос
/ 17 сентября 2008

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

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

0 голосов
/ 27 января 2012

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

0 голосов
/ 21 марта 2009

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

можно найти здесь: Tableorter

0 голосов
/ 19 сентября 2008

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);
});
0 голосов
/ 17 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...