Imports System.Web Imports System.Data.SqlClient Imports System.Data PartialClass TreeViewClass TreeView Inherits System.Web.UI.Page Dim ds As DataSet =New System.Data.DataSet() ProtectedSub Page_Load()Sub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load IfNot IsPostBack Then Dim sqlstr AsString="select a.*,T32003.T3200303 as orderProgramID from(select 项目代码 as nodeID,项目名称 as nodeName,项目名称 as parentID from acf_v_lefttree_Admin where 项目代码<>' ' and 项目代码 is not null group by 项目代码,项目名称 union all select 系统代码 as nodeID,系统名称 as nodeName,项目代码 as parentID from acf_v_lefttree_Admin where 系统代码<>' ' and 系统代码 is not null group by 项目代码,系统代码,系统名称 union all select 子系统代码 as nodeID,子系统名称 as nodeName,系统代码 as parentID from acf_v_lefttree_Admin where 子系统代码<>' ' and 子系统代码 is not null group by 系统代码,子系统代码,子系统名称 union all select 程式代码 as nodeID,程式名称 as nodeName,子系统代码 as parentID from acf_v_lefttree_Admin where 程式代码<>' ' and 程式代码 is not null group by 子系统代码,程式代码,程式名称 ) a left outer join T32003 on a.nodeID = T32003.T3200301" Dim conn As SqlConnection =New SqlConnection("server=(local);database=acfv3;uid=sa;pwd=888888") Dim sqlada As SqlDataAdapter =New SqlDataAdapter(sqlstr, conn) sqlada.Fill(ds, "TreeTb") createtree(TreeView1.Nodes, "我的ACF") EndIf End Sub PrivateSub createtree()Sub createtree(ByVal TreeVwNds As TreeNodeCollection, ByVal strCurrentID AsString) Dim datviw AsNew DataView Dim datrow As DataRowView Dim TreeVwNode As TreeNode Dim currentId AsString datviw.Table = ds.Tables("TreeTb") datviw.Sort ="orderProgramID" Try datviw.RowFilter =" parentID ='"& strCurrentID &"'" If datviw.Count >0Then ForEach datrow In datviw TreeVwNode =New TreeNode TreeVwNode.Value = datrow("nodeID") currentId = datrow("nodeID") TreeVwNds.Add(TreeVwNode) TreeVwNode.Text =Trim(datrow("nodeName")) TreeVwNode.Target ="_blank" Dim i AsInteger= TreeVwNds.Count createtree(TreeVwNds(TreeVwNds.Count -1).ChildNodes, currentId) Next EndIf Catch ex As Exception Response.Write(ex.ToString) EndTry End Sub End Class