Public Function GetTreeTable() As DataTable Dim dt As New DataTable() dt = HttpContext.Current.Cache("Treeview") If dt Is Nothing Then Dim Conn As New SqlConnection Dim clsConnDatabase As New ConnectionDatabase Conn = clsConnDatabase.ConnDatabase Dim Command As New SqlCommand Command.Connection = Conn Command.CommandText = "GetTreeview" Command.CommandType = CommandType.StoredProcedure Command.ExecuteNonQuery()
Dim da As New SqlDataAdapter(Command)
dt = New DataTable() da.Fill(dt) HttpContext.Current.Cache.Insert("Treeview", dt) End If Return dt End Function
这里是主要阿
Public Sub PopulateNodes(ByVal nodes As TreeNodeCollection, Optional ByVal intParentID As Int32 = 0)
Dim dt As New DataTable() dt = clsWebForms.GetTreeTable() Dim strExpression As String strExpression = "[parentID] = " & intParentID Dim foundRows() As DataRow foundRows = dt.Select(strExpression)
Dim I As Integer For I = 0 To foundRows.GetUpperBound(0) Dim tn As New TreeNode() tn.Text = foundRows(I).Item(“TableName”).ToString() tn.Value = foundRows(I).Item("ID").ToString() Dim dr() As DataRow dr = dt.Select("[parentID] = " & tn.Value) If dr.GetUpperBound(0) > -1 Then tn.PopulateOnDemand = True End If nodes.Add(tn) Next End Sub
建立WebForm 放入Treeview
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then PopulateNodes(TreeView1.Nodes, 0) End If End Sub
Protected Sub TreeView1_TreeNodePopulate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.TreeNodePopulate
PopulateNodes(e.Node.ChildNodes, e.Node.Value) End Sub