webForumDet fria alternativet

Sortering i FSO/select

ASP

9 svar · 359 visningar · startad av Glitter

Medlem sedan juli 2003465 inlägg
Frågan#1

Jag har en <select> som jag skulle vilja sortera
Datan som är i selecten är:
2004/1
2004/2
2004/3
2004/10
2004/11
2004/12
2004/20
2004/21
2004/22

år/veckan får jag från mappar som jag hämtar ut med fso och då blir det fel sortering
blir följande:
2004/1
2004/10
2004/11
2004/12
2004/2
2004/20
2004/21
2004/22
2004/3

Jag vill ha det sorterat efter 1,2,3 o.s.v går det att lösa på något sätt ?

Jag kan ju sätta dit en nolla framför de veckor som bara har 1 siffra i koden men det är ju efter hämtningen så det spelar ju ingen roll

Medlem sedan dec. 20003 887 inlägg
#2

Jag föreslår att du använder en nolla. Annars måste du ju sortera listan per tecken och det känns som en sämre metod.

Du kan ju alltid skapa en array med 52 poster och stoppa in veckorna i den med avseende på index. Sedan skapar du <select>-taggen genom att loopa igenom arrayen och plocka ut allt som inte är noll eller null.

Medlem sedan feb. 200112 078 inlägg
#3

Skulle det inte fungera att köra in alltihopa i en array och sortera arrayen? Eller blir det lika knasig sortering då också tro?

Medlem sedan juli 2003465 inlägg
#4

Engine^ skrev:

Jag föreslår att du använder en nolla. Annars måste du ju sortera listan per tecken och det känns som en sämre metod.

Altså sorteringen sker ju innan det hämtas in av asp sidan...
och det tar för lång tid att bygga om så det blir en nolla på de veckorna som är en siffra...
Jag hade typ tänkt mig en array eller javascript som kunde sortera det men jag vet inte hur man skulle kunna göra...

Det kan vara flera år så det går in att ha ett fast värde på 52

Javascript måste la vara bäst för prestandan ?

Medlem sedan dec. 20003 887 inlägg
#5

Äh... vilket scriptspråk du använder kvittar i stort sett.

Om det redan är sorterat blir frågan: Varför sortera samma sak två gånger?

Det vi som ska svara på är hur du ska ändra på den första sorteringen. Så svårt är det inte att lägga till en nolla.

Medlem sedan juli 2003465 inlägg
#6

Det är inte svårt att fixa så nollan är med men det är ett par sidor som man måste ändra på plus att jag måste sitta och döpa om massa mappar som redan finns...
mapparna skapas av upload på flera olika sidor...

men hur funkar array.sort ?
för det borde la funka eller ?

Medlem sedan feb. 200112 078 inlägg
#7

Nja, det finns inga specifika metoder på ett vektor-objekt som sorterar den. Du får skriva koden för att göra det själv eller söka i forumet så kommer du garanterat få träffar på det.

RED. I VBScript alltså. :OO ;) Javascript däremot har uppenbarligen sådan funktionalitet. :D

Medlem sedan dec. 20003 887 inlägg
#8

JScript Array.sort()

Det kan väl fungera. Jag vet inte hur den metoden hanterar strängar dock.

Medlem sedan juli 2003465 inlägg
#9

jag är inte jätte bra på detta men borde inte detta funka?

<script language="jscript">
	function Sort(){
		var a, b, c, d, l;
		var coll = sel;
		a = new Array;
		c = new Array;
		d = new Array;
		
		
		if (coll.length > 0) {
			for (i = 1; i < coll.length; i++){
				a[i] = coll.options(i).text;
				d[i] = coll.options(i).value;
				coll.options.remove(i);
			}
		}
		
		b = a.sort();
		
		for (i=0; i<b.length; i++){
			var oOption = document.createElement("OPTION");
			oOption.innertext = d[i];
			oOption.value = b[i];
			coll.options.add(oOption);
		}
	}
</script>

det som händer är att den tar bort några poster på selecten och lägger till tomma...
någon som vet varför?
jag får inget felmess...

Medlem sedan feb. 200112 078 inlägg
#10

Jag råkade springa på en sida på den fantastiska sajten 4 Guys From Rolla idag och tänkte att den kanske skulle kunna vara till hjälp.

http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=118

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)