Sort( ) eines Arrays
Stefan
- javascript
Hallo zusammen,
ich habe folgendes Problem:
Ich erstelle ein Array in das ich Daten aus einer Datenbank hohle und diese dann in einer HTML-Tabelle, Zeile für Zeile sortieren will.
Genau nach der ersten Variable "vLibPrdU2" (siehe unten im trU.push)sortieren will. Das Array ist vollständig mit allen Daten die ich brauche nur das Problem liegt daran, dass es mir die Zahlen anscheinend übersieht.
Ergebnissbeispiel:
L15LisCoo
L25Lis
L35LisZst
L45LisZ&Zf
L87LisZ&ZFl80Pr
M55Microkl12Tub
M50Microkl_4Tub
N40NicFMGum30a2
N45NicFMGu105a2
N50NicFMGum30a4
N55NicFMGu105a4
991NicRTSDeko
N88NicRTSSiwa
O10OlyLö
O15OlyDS
O20OlyLö
O30OlyDS
Wie Ihr seht, ist es bis auf zwei Punkte richtig und zwar M50... müsste über M55... liegen und 991N... ganz oben. Alles andere ist richtig.
Könnt Ihr mir einen Tip geben woran das liegen könnte, bzw. wie ich die Reihenfolge richtig hinbekomme?
Hier ein kleiner Ausschnitt aus meinem Code:
var trU = new Array();
...
if(umsatzgesN != 0 || umsatzgesL != 0 || grNges != 0 || grLges != 0)
{
trU.push("<tr class='merkmaltabtitle'><td class='textfett1'>" + vLibPrdU2 + "</td><td class='textfett2'>" + umsatzgesN + "/" + grNges + "</td><td class='textfett2'>" + umsatzgesL + "/" + grLges + "</td><td class='textfett'>"+ monate[0]+ "/" + GRmonat[0] + "</td><td class='textfett'>"+ monate[1] + "/" + GRmonat[1] + "</td><td class='textfett'>"+ monate[2]+ "/" + GRmonat[2] + "</td><td class='textfett'>"+ monate[3]+ "/" + GRmonat[3] + "</td><td class='textfett'>"+ monate[4]+ "/" + GRmonat[4] + "</td><td class='textfett'>"+ monate[5]+ "/" + GRmonat[5] + "</td><td class='textfett'>"+ monate[6]+ "/" + GRmonat[6] + "</td><td class='textfett'>"+ monate[7]+ "/" + GRmonat[7] + "</td><td class='textfett'>"+ monate[8]+ "/" + GRmonat[8] + "</td><td class='textfett'>"+ monate[9]+ "/" + GRmonat[9] + "</td><td class='textfett'>"+ monate[10]+ "/" + GRmonat[10] + "</td><td class='textfett'>"+ monate[11]+ "/" + GRmonat[11] + "</td></tr>");
umsatzgesL = 0;
umsatzgesN = 0;
grNges = 0;
grLges = 0;
}
...
trU=trU.sort();
...
Gruß
Stefan
Hallo Stefan,
probier mal
trU.sort();
statt
trU=trU.sort()
ciao Andreas
Hallo Stefan,
probier mal
trU.sort();
statt
trU=trU.sort()ciao Andreas
Das hatte ich natürlich auch schon probiert und natürlich auch so:
var trUtemp = trU.sort();
Es bleibt leider beim selben :-(
Hi,
Wie Ihr seht, ist es bis auf zwei Punkte richtig und zwar M50... müsste über M55... liegen und 991N... ganz oben. Alles andere ist richtig.
in welchen Browsern konntest Du dies beobachten?
Cheatah
Hi,
Wie Ihr seht, ist es bis auf zwei Punkte richtig und zwar M50... müsste über M55... liegen und 991N... ganz oben. Alles andere ist richtig.
in welchen Browsern konntest Du dies beobachten?
Cheatah
Es ist für eine Anwendung die nur für den IE 6.0 gedacht ist.
Gruß Stefan
Hi,
Es ist für eine Anwendung die nur für den IE 6.0 gedacht ist.
okay. Konntest Du den Fehler dennoch auf anderen Browsern reproduzieren?
Cheatah
Hi,
Es ist für eine Anwendung die nur für den IE 6.0 gedacht ist.
okay. Konntest Du den Fehler dennoch auf anderen Browsern reproduzieren?
Cheatah
Nein leider nicht, da die Anwendung welche in Java und C++ geschrieben ist, für die Scripte die ich erstellen will, nur auf den IE eingestellt ist. Es bringt mir also nicht viel den Source-Code in eine HTML-Datei zu schreiben und diese dann mit anderen Browsern zu testen, da die DB nur für die Applikation alleine geschrieben ist.
Hi,
okay. Konntest Du den Fehler dennoch auf anderen Browsern reproduzieren?
Nein leider nicht, da die Anwendung welche in Java und C++ geschrieben ist, für die Scripte die ich erstellen will, nur auf den IE eingestellt ist. Es bringt mir also nicht viel den Source-Code in eine HTML-Datei zu schreiben und diese dann mit anderen Browsern zu testen, da die DB nur für die Applikation alleine geschrieben ist.
bitte erstelle einen minimierten Testfall, der (auch) mit anderen Browsern das Problem testbar macht. Es ist bekannt, dass der IE manchmal nicht korrekt sortiert (und dabei bei identischen Eingangsdaten unterschiedliche (falsche) Ergebnisse produziert), und ich halte es für wichtig herauszufinden, ob eben dieses Problem hier vorliegt oder es sich um etwas anderes handelt.
Cheatah
Hi,
okay. Konntest Du den Fehler dennoch auf anderen Browsern reproduzieren?
Nein leider nicht, da die Anwendung welche in Java und C++ geschrieben ist, für die Scripte die ich erstellen will, nur auf den IE eingestellt ist. Es bringt mir also nicht viel den Source-Code in eine HTML-Datei zu schreiben und diese dann mit anderen Browsern zu testen, da die DB nur für die Applikation alleine geschrieben ist.bitte erstelle einen minimierten Testfall, der (auch) mit anderen Browsern das Problem testbar macht. Es ist bekannt, dass der IE manchmal nicht korrekt sortiert (und dabei bei identischen Eingangsdaten unterschiedliche (falsche) Ergebnisse produziert), und ich halte es für wichtig herauszufinden, ob eben dieses Problem hier vorliegt oder es sich um etwas anderes handelt.
Cheatah
Nach längerem suchen habe ich den Fehler nun gefunden. :-)
Ich habe weiter oben in meinem Script folgendes geschrieben.
vLibPrdU2 = "<a class='productlink' title='" + vLibPrdU2 + "' href='#'>" + vLibComU2 +"</a>";
Der Fehler dabei ist, das er nicht nach "vLibComU2" sortiert sondern nach dem title "vLibPrdU2 " .
Manchmal muss man eben verzweifelt suchen wenn man ein großes Script hat.
Trotzdem vielen herzlichen Dank an Eure Antworten.
Vielleicht habt Ihr noch einen kleinen anderen Tip für mich. Und zwar möchte ich einen Querdruck erzwingen. Seit CSS 2.1 geht @page { size:landscape } ja leider nicht. Ich habe versucht mit folgendem CSS für den Druck den kompletten Body zu drehen und zwar so:
<style type="text/css" media="print">
body {
filter: progid:DXImageTransform.Microsoft.BasicImage(Rotation=1);
}
</style>
habe es auch mit einem eigenen class dafür versucht.
Ergebniss:
Die ganzen Tabellen die ich aufliste, drehen sich stück für stück nach rechts und das ganz unterschiedlich. Also man kann es nicht ansehen.
Gruß
Stefan