Avatar billede mik Nybegynder
11. maj 2005 - 23:00 Der er 1 kommentar og
1 løsning

Kan ikke lave flere niveauer i aspmenu

Jeg fik i sin tid hjælp til denne menu.. Den skulle kunne oprette "unlimited" undermenuer, men jeg har desværre opdaget en fejl. 2 menuer under niveau 1 går godt nok, men hvis men opretter 2 menuepunkter under niveau som igen har nogle menupunkter under sig, så går det galt. Man kan åbne den første, når man så åbner den første går det godt og når man åbner den anden lukker den første, men den anden åbner ikke...

Function BygUnderMenu(MenuID,Liste)
    UnderSQL = "SELECT ID, Navn, Link, User, Target, Beskrivelse FROM Menu WHERE MenuID = " & MenuID & " and User= ('" & varUser & "') ORDER BY [Order]"
    Call OpenRS(Conntemp,UnderSQL,UnderRS)
       
    Response.Write "<DIV ID=""txt_" & MenuID & """ STYLE=""display: none; margin-left: 10px;"">"&vbCrLf
        While Not UnderRS.EOF
            If CountSubs(UnderRS("ID")) > 0 Then
    Response.Write "<A class=menu" & varUser & " HREF=""fra_main.htm"" OnClick=""MenuClick('" & UnderRS("ID") & "," & Liste & "')""><B><img src=""images/plus.gif"" width=13 height=12 border=0>" & UnderRS("Navn") & "</B></A>"&vbCrLf

Liste = UnderRS("ID") & "," & Liste
        Call BygUnderMenu (UnderRS("ID"), Liste)
            Else
                Response.Write "<A class=menu" & varUser & " HREF=""" & UnderRS("Link") & """ TARGET=""" & UnderRS("Target") & """><img src=""images/minus.gif"" width=13 height=12 border=0>" & UnderRS("Navn") & "</A>"&vbCrLf
            End If
        UnderRS.MoveNext
Liste = MenuID
    Wend
    Response.Write "</DIV>"
End Function


Function CountSubs(MenuID)
    CountSQL = "SELECT ID, User FROM Menu WHERE MenuID = " & MenuID & " and User= ('" & varUser & "')"
    Call OpenRS(Conntemp,CountSQL,CountRS)
    CountSubs = CountRS.RecordCount
End Function

LavDatabase Conntemp

SQL = "SELECT ID, Navn, Link, User, Target, Beskrivelse  FROM Menu WHERE MenuID = 0 and User= ('" & varUser & "') ORDER BY [Order]"


Call OpenRS(Conntemp,SQL,RS)

If RS.BOF AND RS.EOF Then
    Response.Write "FEJL"
Else
    RS.MoveFirst
        While Not RS.EOF
            If CountSubs(RS("ID")) > 0 Then
                Response.Write "<A class=menu" & varUser & " HREF=""fra_main.htm""  TARGET=" & RS("Target") & " OnClick=""MenuClick(" & RS("ID") & ")""><B><img src=""images/plus.gif"" width=13 height=12 border=0>" & RS("Navn") & "</B></A>"&vbCrLf
                Call BygUnderMenu (RS("ID"),RS("ID"))
            Else
                Response.Write "<A class=menu" & varUser & " HREF=""" & RS("Link") & """><img src=""images/leaf.gif"" width=13 height=12 border=0>" & RS("Navn") & "</A>"&vbCrLf
            End If
            RS.MoveNext
        Wend
End If

   
LukDatabase Conntemp
%>
Avatar billede busschou Praktikant
12. maj 2005 - 07:17 #1
Sådan her :o)
--
Function BygUnderMenu(MenuID,Liste)
  UnderSQL = "SELECT ID, Navn, Link, User, Target, Beskrivelse FROM Menu WHERE MenuID = " & MenuID & " and User= ('" & varUser & "') ORDER BY [Order]"
Call OpenRS(Conntemp,UnderSQL,UnderRS)
Response.Write "<DIV ID=""txt_" & MenuID & """ STYLE=""display: none; margin-left: 10px;"">"&vbCrLf
  While Not UnderRS.EOF
  If CountSubs(UnderRS("ID")) > 0 Then
    Response.Write "<A class=menu" & varUser & " HREF=""fra_main.htm"" OnClick=""MenuClick('" & UnderRS("ID") & "," & Liste & "')""><B><img src=""images/plus.gif"" width=13 height=12 border=0>" & UnderRS("Navn") & "</B></A>"&vbCrLf
    Liste = UnderRS("ID") & "," & Liste
    Call BygUnderMenu (UnderRS("ID"), Liste)
'Til hvert underkald fjernes hovedet af listen så rekursiviteten kører   
  temp = Split(Liste,",")
  if UBound(temp) > 0 then
    nyListe = ""
    temp = Split(Liste,",")
    for t=1 to UBound(temp)
    if t=1 then
      nyListe = temp(t)
    else
      nyListe = nyListe &","& temp(t)
    end if
    next
    Liste = nyListe
  else
    Liste = MenuID
  end if
   
  Else
    Response.Write "<A class=menu" & varUser & " HREF=""" & UnderRS("Link") & """ TARGET=""" & UnderRS("Target") & """><img src=""images/minus.gif"" width=13 height=12 border=0>" & UnderRS("Navn") & "</A>"&vbCrLf
  End If
  UnderRS.MoveNext
  Wend
Response.Write "</DIV>"
End Function
Avatar billede mik Nybegynder
12. maj 2005 - 14:57 #2
Tusind tak for hjælpen, det virker bare.  :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester