Ich hatte eine Tabelle mit JavaScript erstellt, in der drei Spalten Event ID, Events und Total Count stehen. Jetzt muss ich die dritte Spalte, d. H. Gesamtanzahl in absteigender Reihenfolge sortieren. Ich habe online gesucht, wie man es sortiert. Ich weiß, wie man Tabellen für Standard-HTML-Tabelle ("order": [[ 2, "desc" ]])
sortiert, aber diese Tabelle wird unter Verwendung von JavaScript gebildet, also bin ich verwirrt. Ich könnte eine Schleife verwenden, um eine Tabelle rückwärts zu erstellen, d. H. for(var i=to; i>=from; i--)
, aber meine Ergebnis-JS-Tabelle ist das Ergebnis der Tabelle, die aus SQL generiert wird, in der "Ereignisse" nicht auf- oder absteigend sortiert sind. Mit anderen Worten, ich erstelle diese JavaScript-Tabelle aus der SQL-generierten Tabelle. Unten ist der Code an dem ich arbeite:Wie sortiere ich eine Javascript-Tabelle (aufsteigend oder absteigend), die das Ergebnis einer SQL-Tabelle ist?
<script>
$(function() {
CreateTable(GetSum('#displaytable'));
});
function GetSum(tableIdWithHash) {
var Sum = [];
var EventIds = [];
var EventName = [];
var Data = [];
$(tableIdWithHash).find('.eventCounts').each(function(i){
var Counte = $(this).html();
var Ide = $(this).siblings('.Idevent').html();
var eName = $(this).siblings('.eventNames').html();
allSum.sort(function(a,b){
if(a.eCount > b.eCount){
return 1;
} else if (a.eCount < b.eCount){
return -1;
} else{
return 0;
}
});
if (EventIds.indexOf(Ide) === -1) {
EventIds.push(Ide);
EventName.push(eName);
}
var index = EventIds.indexOf(Ide);
if (Sum[index] == undefined) {
Sum[index] = Number(Counte);
}
else {
Sum[index] += Number(Counte);
}
});
Data.push(EventIds);
Data.push(EventName);
Data.push(Sum);
//"order": [[ 2, "desc" ]]
return Data;
}
</script>
Ich habe empfohlen, das SQL-Server-Tag zu entfernen. SQL Server-Lösungen lösen JavaScript-Probleme nicht. –
Ich empfehle Ihnen dringend, Sortieren (ORDER BY) und Summe (OVER()) mit SQL Server anstelle der Last auf dem Client –
Je nachdem, was Sie tun, gibt es gültige Gründe zum Sortieren und auf dem Server, OR auf dem Client. Eine Größe passt nicht allen. Das heißt, wenn Sie es auf dem Client tun, denke ich, dass Sie zuerst Ihre Daten sortieren und formatieren und * dann * die Tabelle erstellen möchten; mach es nicht alles auf einmal. – Paul