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.
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.
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.
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.
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é!
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)%>