Here is some code I used to fill in a treeview control. I determined child/parent relationships by a returned field from the database.
Here are some sample recordsets. The TreeNodes table is the same structure.
| CategoryID | CategoryName | CategoryTO |
| ASD.AMAS | Category Title | ASD |
| ASD.AMAS.NS | Category Title 1.1 | ASD.AMAS |
| ASD.AMAS.NS.AS | Category Title 1.1.1 | ASD.AMAS.NS |
| ASD.AMAS.NS.AUC | Category Title 1.1.1 | ASD.AMAS.NS |
| ASD.AMAS.TDA | Category Title 1.2 | ASD.AMAS |
| ASD.AMAS.TDA.TA | Category Title 1.2.1 | ASD.AMAS.TDA |
| ASD.AMAS.TDA.TD | Category Title 1.2.2 | ASD.AMAS.TDA |
| ASD.APS | Category Title 2 | ASD |
| ASD.APS.C | Category Title 2.1 | ASD.APS |
| ASD.APS.DM | Category Title 2.2 | ASD.APS |
| ASD.APS.DM.A10 | Category Title 2.2.1 | ASD.APS.DM |
| ASD.APS.DM.C2 | Category Title 2.2.2 | ASD.APS.DM |
| ASD.APS.DM.E2C | Category Title 2.2.3 | ASD.APS.DM |
The Code
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=MyDB"
set RS = Conn.execute("{call qryTreeNodesAll}")
if RS.EOF then
response.write "TreeView1.Nodes.Add ,,,""No Records"""
else
do while NOT RS.EOF
s = RS(2)
count = 0
pos = 1
lookfor = "."
Do While True
pos = InStr(pos, s, lookfor)
If pos > 0 Then
count = count + 1
pos = pos + 1
Else
Exit Do
End If
Loop
select case count
case 0
response.write "TreeView1.Nodes.Add ,,"""&RS(0)&""","""&RS(1)&"""" & vbCrLf
case else
response.write "TreeView1.Nodes.Add """&RS(2)&""",4,"""&RS(0)&""","""&RS(1)&"""" & vbCrLf
end select
RS.Movenext
loop
end if