J'ai un tableau des noms et des âges que je veux que l'utilisateur puisse trier. Lorsque la page se charge initally, sortList
répertorie les lignes dans l'ordre du plus vieux au plus jeune, puis secondairement de A à Z.jQuery/Tablesorter: maintenir le tri alphabétique secondaire
Je veux la même chose (un tri secondaire alphabétique) lorsque l'utilisateur clique sur l'âge <th>
, mais sortForce
rend le tri alphabétique primaire. Y a-t-il une alternative?
$('#super_results table').tablesorter({
sortForce: [[0,0]],
sortList: [[1,1],[0,0]]
});
Ou est-ce que je ne comprends pas sortForce
? Documentation here.
Mise à jour: je ne pouvais pas trouver un plugin pour le faire pour moi, donc j'écrit un code qui trie le tableau multidimensionnel qui construit la table. Si vous avez un tableau appelé tableContents
, et tableContents[0]
est un sous-ensemble de noms et tableContents[1]
est un sous-groupe d'âges, puis appelant tableContents.sort(numSort)
va trier le tableau d'abord du plus ancien au plus jeune, puis de A à Z. (num2Sort
trie le plus jeune au plus ancien en premier .) Ensuite, vous pouvez recréer la table en utilisant createHtml(data)
, et utiliser le résultat pour remplacer l'ancienne table.
function numSort(a, b) {
if (a[1] === b[1]) {
if (a[0] === b[0]) {
return 0;
}
return (a[0] < b[0]) ? -1 : 1;
}
return (a[1] < b[1]) ? 1 : -1;
}
function num2Sort(a, b) {
if (a[1] === b[1]) {
if (a[0] === b[0]) {
return 0;
}
return (a[0] < b[0]) ? -1 : 1;
}
return (a[1] < b[1]) ? -1 : 1;
}
function createHtml(data) {
var completeListLength = MYAPP.completeList.length,
html = '<table>';
html += '<thead>';
html += '<tr>';
html += '<th>names</th>';
html += '<th>ages</th>';
html += '</tr>';
html += '</thead>';
html += '<tbody>';
for (var i = 0; i < completeListLength; i += 1) {
html += '<tr>';
html += '<td>' + data[i][0] + '</td>';
html += '<td>' + data[i][1] + '</td>';
html += '</tr>';
}
html += '</tbody>';
html += '</table>';
return html;
}
cela fonctionne quand vous supprimez sortForce? – typeof
Lorsque j'enlève sortForce et clique sur les âges, la table trie les âges mais il n'y a pas d'alphabétisation. – user460847
Je n'ai pas le plugin a la capacité de faire ce que vous demandez .. – ifaour