A táblázatoknál kevés adat esetén gyakori, hogy a rendezést nem a szerver, hanem a kliens oldalon végezzük. Amellett, hogy a szervert is kíméljük, még gyorsabb is. Szöveges mezők esetében a rendezés az ékezetekre nincs felkészítve.
Sajnos a Store-ban nem az összehasonlító függvényt írhatjuk felül, hanem az összehasonlításhoz használt értéket. Szerintem az előbbi verzió rugalmasabb. Lásd. PHP usort függvényét.
Mindenesetre a magyar ékezetes szavak rendezését így is könnyen megvalósíthatjuk. Nem kell mást tenni, minthogy az adott szó helyett vizsgáljuk meg az ékezet nélküli verzióját. (és ha már ott vagyunk, akkor a kis-nagy betű különbségeket is hagyjuk figyelmen kívül)
Először az átalakító függvény:
var from = "ÁÉÚŐŰÓÜÖÍáéúőűóüöí", to ="AEUOUOUOIaeuououoi";
var ret = '';
for (var i = 0, len = s.length; i < len; i++) {
var t = from.indexOf(s.charAt(i));
ret += t==-1 ? s.charAt(i) : to.charAt(t);
}
return ret.toUpperCase();
}
Egy Store, ahol az egyik mezőnél a fenti függvény segítségével rendezünk:
fields: [{name: 'full_name', sortType: asWithoutAccent}, ...],
...
});