这是一个任意层数的,不过一般用户理解起来比较困难:
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode
For Each dr As DataRow In DataTables("单位树").DataRows
dr("标题id") = dr("标题id").Trim()
Next
tr.Nodes.Clear
Dim drs As List(of DataRow)
drs = DataTables("单位树").Select("", "标题ID")
For i As Integer = 0 To drs.Count -1
If drs(i)("标题id").Length = 2 Then
nd = tr.nodes.Add(drs(i)("标题id"), drs(i)("标题id"))
Elseif drs(i)("标题id").StartsWith(drs(i-1)("标题id")) Then
nd = nd.nodes.Add(drs(i)("标题id"), drs(i)("标题id"))
Else
Do While True
nd = nd.ParentNode
If drs(i)("标题id").StartsWith(nd.Name)
nd = nd.nodes.Add(drs(i)("标题id"), drs(i)("标题id"))
Exit Do
End If
Loop
End If
Next