webForumDet fria alternativet

Metod (Göras på annat sätt?)

ASP

1 svar · 290 visningar · startad av Fredde Mannen

Medlem sedan nov. 20014 054 inlägg
Frågan#1

Har skapat en klass som skapar en expanderbar meny i ASP till klubbens hemsida.

Dock är den lite skum, samma god kan producera helt olika resultat..

Den fungerar på det sätt att varje post i en databas (id och parentid) eller om man manuellt vill skapa poster i menyn:

Dim objNavTree
Set objNavTree = New NavTree

' Lägg till poster
objNavTree.Add 1, -1, "Rootelement", "Sida.asp"
objNavTree.Add 2, 1, "Barn till Rootelement", "Sida.asp"

' Visa trädet
objNavTree.BuildTree

Det är själva sättet att skapa menyn på, koden bakom är lite större :) Problemet som jag stöter på är att på något underligt sätt faller barn och rotelement om jag skapar den från en databas.

Själv misstänker jag att det har med Metoden Add som skapar en post i en array med värdena id;;parentid;;name;;url

Följande är metoden Add

	Public Sub Add(id,parentid,name,url)
        Dim ListItem()

        if IsArray(List) Then
		    Dim n
		    n = Ubound(List) + 1
		
		    Redim ListItem(n)
		    Item = List
		    For i = 0 To Ubound(List)
			    ListItem(i) = item(i)
		    Next

		    ListItem(n) = parentid & ";;" & name & ";;" & url & ";;" & id
       Else
            Redim ListItem(0)
            ListItem(0) = parentid & ";;" & name & ";;" & url & ";;" & id
       End if     
       
       List = ListItem
	End Sub

Där List i denna metod är en property som skall innehålla den fyllda arrayn..
Kan denna göra så att någon post inte kommer med..

För loopar jag genom databasen och skriver ut i:

... kod.. 
nArray = rs.GetRows

For i = 0 To Ubound(nArray,2)
   Response.Write(i & "<br />")
   objNavTree.Add nArray(0,i), nArray(1,i), nArray(2,i), nArray(3,i)
Next

Så hoppar den över värden, ex 1 & 2:
0
3
4
5
6
7
8
9

Där har den hoppat över i, vänder jag och stoppar response efter objNavTree.Add .. så resulterar det i

2
3
4
5
6
7
8
9

Då har den hoppat över 0 & 1

Kan det vara metoden som gör detta?

Medlem sedan nov. 20014 054 inlägg
#2

Prövade att kasta ut ID från metoden, vilket resulterade i

35=51
36=36
4=4
31=31
39=39
32=32
52=52
58=58
20=20
43=43
59=59
55=55
49=49
26=26
25=25
37=37
38=38
42=42
7=7
56=56
57=57

Där ser man direkt en skillnad.. 35=51 bör stå 35=35 .. :l

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