Domanda

Questa è la mia prima vera domanda sulla necessità di qualcuno di quegli esperti di Gridview là fuori nel mondo .NET.

Sto creando un Gridview da codebehind e conservo un sacco di dati numerici nelle colonne.Tuttavia, aggiungo la virgola nei campi numerici da codebehind.Quando lo carico su Gridview, ho attivato la capacità di ordinamento, MA il gridview sceglie l'ordinamento ALPHA anziché l'ordinamento numerico perché aggiungo quelle virgole.

Quindi ho bisogno di aiuto.Qualcuno disposto a dare una possibilità a questo?Devo modificare alcune delle mie colonne nella visualizzazione griglia in ordinamento numerico anziché nell'ordinamento alfa che sta utilizzando.

È stato utile?

Soluzione 4

Invece, ho appena fatto ricorso al JQUERY Table Sorter.

può essere trovato qui: tablesorter

Altri suggerimenti

Se finisci per implementare il tuo comparatore e ordinarlo come stringhe, l'algoritmo per trattare i numeri "correttamente" si chiama ordinamento naturale.Jeff ha scritto un articolo piuttosto interessante al riguardo qui:
Ordinamento per gli esseri umani:Ordinamento naturale

Puoi trovare un'implementazione piuttosto buona in C# qui:
http://www.codeproject.com/KB/string/NaturalSortComparer.aspx

A seconda di come stai eseguendo l'ordinamento, potresti utilizzare uno dei metodi sopra indicati, oppure potresti tornare al DB e eseguire l'ordinamento lì se le colonne sono effettivamente di tipo numerico, quindi aggiungere la decorazione in un secondo momento.

P-Invoke è tuo amico.

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

Quindi potresti usarlo come tuo comparatore.

Ad esempio (in VS2005),

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

Mi rendo conto che è davvero vecchio, ma stai mescolando dati con presentazione;è questo che rovina tutto.Ottieni il numero da SQL senza aggiungere virgole, quindi aggiungili nel livello di presentazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top