2012-11-28 10 views
5

Sto usando jquery datatable. Visualizza l'elenco dell'utente (nome, cognome, ecc.). E 'possibile impostare in modo che la maiuscola viene sempre prima lettera minuscola quando clicco su ordine crescente del cognome. (Maiuscole e minuscole)Come ordinare l'alfabitecal databile e non sensibile al maiuscolo/minuscolo con jQuery?

seguito è esempio

FirstName LastName 
A    Xb <--X is Captial--> 
B    xa <-- x is small--> 
c    yc 

Quando clicco su l'ordinamento sul cognome con ordine crescente verrà visualizzato il seguente

FirstName LastName 

B    xa <--small--> 
A    Xb <--X is Captial--> 
c    yc 

Sono disponibili proprietà che ordinano in caso di necessità?

risposta

0

Questo dovrebbe aiutare a

var names = [ 
    {"FirstName":"A", "LastName":"Xb"}, 
    {"FirstName":"B", "LastName":"xa"}, 
    {"FirstName":"C", "LastName":"yc"} 
]; 

names.sort(function(a, b) { 
    return a.LastName.toLowerCase().localeCompare(
     b.LastName.toLowerCase() 
    ); 
}); 

console.log(names); 

See it working on jsFiddle

0

si può provare qualcosa di simile: -

jQuery.fn.dataTableExt.oSort['string-case-asc'] = function(x,y) { 
return ((x < y) ? -1 : ((x > y) ? 1 : 0)); 
}; 

jQuery.fn.dataTableExt.oSort['string-case-desc'] = function(x,y) { 
return ((x < y) ? 1 : ((x > y) ? -1 : 0)); 
}; 

Ordinamento prestazioni ha essere it migliorato preparando i dati per essere ordinati prima di eseguire l'ordinamento stesso. Ad esempio, è inutile fare .toLowerCase() sulla stessa stringa più volte - sarà risultato sempre nello stesso risultato. Poiché tali funzioni di ordinamento possono ora avere un metodo {tipo} -pre, nonché i metodi {type} -desc e {type} -asc per preparare i dati. Tutti i metodi di ordinamento interno ora usano questo metodo per lo .

Dal source

+0

Che cos'è il valore X e Y? Quale valore rappresentano? – Raje

+0

Sono le variabili che ho preso. Puoi cambiarlo secondo il tuo reqm !! –

0

Presumo quando dici jquery DataTable, si intende il plugin datatable a Datatables.net. Se è così, sembra che a partire dalla versione 1.9, l'ordinamento maiuscole e minuscole sono resi disponibili:

bCaseInsensitive

+0

Sto usando la versione 1.4.4 di jquery. – Raje

0

Il valore di default tipo di ordinamento in DataTable plugin è case insensitive. Tuttavia, se si utilizza l'elaborazione lato server con SQL, la distinzione tra maiuscole e minuscole deriva dal database non da jquery.dataTables.js. Per risolverlo, trova la tua clausola di ordine SQL Query e modificala in lower().

Se si utilizza l'esempio fornito qui: http://www.datatables.net/development/server-side/php_mysql Quindi, sostituire le righe 81 & 82 con il codice di seguito ed è fatto.

$sOrder .= 'upper('.$aColumns[ intval($_GET['iSortCol_'.$i]) ].") 
".mysql_real_escape_string($_GET['sSortDir_'.$i]) .", "; 

Spero che questo aiuti.

Problemi correlati