Avatar billede Slettet bruger
16. august 2003 - 11:36 Der er 3 kommentarer og
1 løsning

ASP treeview fra DB

I min db har jeg nogle poster som skal listes som et træ. Fx:
1  Hej        0
2  Ny side    0
3  Underisde  2

Dvs, de to første skal stå yderst, men den tredje skal stå under nr 2.

Hvordan kan det lade sig gøre? Det betyder ikke så meget om træet er expandable...
Avatar billede eagleeye Praktikant
16. august 2003 - 11:41 #1
id  parentid  name
1      0      Hej        --> rod-element, dvs. parentid = 0
2      0      Ny side    --> også et rodelement
3      2      Underside    --> under ny side, dvs. parentid = 2
osv.


Du kan lave en rekursiv procedure, der udskriver alle elementer:


Sub writeElements(pid,level)
  Dim rs, strSql
  strSql = "SELECT * FROM table WHERE parentid=" & pid
  Set rs = Conn.Execute(strSql)
  If Not rs.Eof Then
    Do While Not rs.Eof
      Response.Write "<div style=""margin-left:" & 15 * level & "px"">"
      Response.Write rs("name")
      Response.Write "</div>"
      WriteElements rs("id"), level + 1 'udskriv alle elementer under dette
      rs.MoveNext
    Loop
  End If
  rs.Close
  Set rs = Nothing
End Sub


Kald proceduren sådan her:

<body>
<%
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sti_til_din_db
writeElements 0,0
Conn.Close
Set Conn = Nothing
%>
</body>
Avatar billede Slettet bruger
16. august 2003 - 11:48 #2
kommer den ikke til at åbne rs flere gange oven i hinanden?
Avatar billede Slettet bruger
16. august 2003 - 11:50 #3
Det ser dog ud til at virke. KANON LØSNING !!!
Avatar billede eagleeye Praktikant
16. august 2003 - 11:50 #4
men det bliver et nyt rs da rs er dim'et inde i funktionen. Det er meniungen den hendter data fra db til hver gren.
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