Question

C’est ma première vraie question sur la nécessité de faire appel à l’un de ces experts Gridview dans le monde .NET.

Je crée un Gridview à partir de codebehind et je tiens un tas de données numériques dans les colonnes. Bien que j'ajoute la virgule dans les champs numériques de codebehind. Lorsque je le charge dans Gridview, la capacité de tri est activée, MAIS Gridview choisit le tri ALPHA plutôt que le tri numérique car j'ajoute ces virgules.

J'ai donc besoin d'aide. Quelqu'un veut-il tenter sa chance? Je dois modifier certaines de mes colonnes dans gridview en tri numérique plutôt qu'en tri alpha.

Était-ce utile?

La solution 4

Au lieu de cela, je viens de recourir à la trieuse de tables JQUERY.

peut être trouvé ici: tablesorter

Autres conseils

Si vous finissez par implémenter votre propre comparateur et à les trier sous forme de chaînes, l'algorithme permettant de traiter les nombres "correctement" s'appelle Tri naturel. Jeff a écrit un très bon article à ce sujet ici:
Tri pour les humains: ordre de tri naturel

Vous pouvez trouver une très bonne implémentation en C # ici:
http://www.codeproject.com/KB/string/NaturalSortComparer.aspx

En fonction de la manière dont vous effectuez le tri, vous pouvez utiliser l'une des méthodes ci-dessus, ou vous pouvez revenir à la base de données et y effectuer le tri si les colonnes sont en fait un type de nombre, puis y ajouter votre décoration ultérieurement.

P-Invoke est votre ami.

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

Vous pourrez ensuite l'utiliser comme votre propre comparateur.

Par exemple (dans VS2005),

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

Je réalise que c'est vraiment vieux, mais vous mélangez des données avec une présentation; c'est ce qui fout en l'air. Extrayez le numéro de SQL sans ajouter de virgule, puis ajoutez-le dans la couche de présentation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top