webForumDet fria alternativet

Trädstruktur

ASPur ASP

8 svar · 611 visningar · startad av jepsO

Medlem sedan mars 2001484 inlägg
Frågan#1

Hur skapar man på bästa sätt en trädstruktur liknande http://msdn.microsoft.com/downloads/default.asp? Vad jag förstått kan man antingen låta hela "länkträdet" laddas varje gång man klickar på en länk eller först ladda all data (i detta fall produktgrupper) för att sedan låta JavaScript sköta öppnandet av undergrupper.

Förslag?

Medlem sedan feb. 200112 078 inlägg
#2

Hur mycket information har du som skall finnas i "trädet"?

Medlem sedan mars 2001484 inlägg
#3

Det handlar om några hundra produktgrupper. Inte så hemst mycket, med andra ord.

Medlem sedan mars 2002777 inlägg
#4

Diskuterade liknande själv här:
http://www.webforum.nu/showthread.php?s=&threadid=39939&highlight=meny

Medlem sedan feb. 200112 078 inlägg
#5

Frågan ifall du skall ladda allt material först och sedan använda ett javascript för navigeringen eller köra på ett vanligt href-system där materialet laddas allt eftersom, är något som du själv måste bedöma. Jag hade nog försökt med modell 1 eftersom jag tycker det är mer smutt med en javascriptmeny i ett sånt läge.

Medlem sedan mars 2001484 inlägg
#6

Jag är dessvärre tvungen att utgå från en enda tabell, där grupp-ID och "övergrupp-ID" (dvs parent ID) är inlagda.

Min första tanke var att lägga in grupp-ID som t.ex. "13;41;78", där 13 är ID till en huvudgrupp, 41 är en undergrupp till huvudgruppen och 78 är undergrupp till 41.

Det hela skulle se ut ungefär såhär:

Huvudgrupp
Huvudgrupp
Huvudgrupp (13)
--------Undernivå 1
--------Undernivå 1
--------Undernivå 1 (41)
----------------Undernivå 2
----------------Undernivå 2(78)
###########################
----------------Undernivå 2
----------------Undernivå 2
--------Undernivå 1
--------Undernivå 1
Huvudgrupp
Huvudgrupp
Huvudgrupp

När man sedan klickar på själva gruppnamnet listas alla produkter i den gruppen.

Jag lyckades få det hela att fungera "OK" med en rekursiv funktion som först listade alla grupper "inifrån och utåt" ner till den blå markeringen. Sen håller jag nu på att fixa en till funktion som skriver grupperna nedanför, dvs går "utifrån och inåt". Detta känns dock inte som den smidigaste av lösningar, varför jag undrar om det finns något smidigare sätt.

Allt är alltså tänkt att likna Microsofts variant...

Medlem sedan dec. 19995 875 inlägg
#7

Det beror på vad du har för krav anser jag.
Vill du att man skall kunna navigera på ett riktigt sätt även om man har alla tänkbara script avstängda eller en riktigt märkligt browser så skall du köra på att den endast ritar ut det som man angett och klickar man på en annan länk så ritar den om hela menyn. Är du inte så kräsen tycker jag javascript låter som en lysande idé!

Medlem sedan dec. 19995 875 inlägg
#8
private sub printMenu(lngParentID)
	SQLStmt = "SELECT fldLvl_id, fldName FROM tblLevel WHERE fldParentID = " & lngParentID & " order by fldName"
	Set rs = connection.execute(SQLStmt)
	do until rs.eof
		response.write rs(1)
		call printMenu(rs(0))
	loop
	set rs = Nothing
end sub

funktionen ropas exempelvis såhär: <%call printMenu(0)%>

tabellen kan se ut:

fldLvl_id	fldParentID	fldName
13		0		Huvudgrupp
41		13		Undernivå 1
78		41		Undernivå 2
Medlem sedan mars 2001484 inlägg
#9

Hmm, koden fungerade tyvärr inte riktigt. Är den tänkt att skriva ut hela trädstrukturen?

136 ms totalt · 3 externa anrop · v20260731065814-full.8a4e7caf
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)