/*后台代码*/ using System; using System.Data; using System.Data.SqlClient; using System.Web.UI; using System.Web.UI.WebControls;namespace TreeViewTest {public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!Page.IsPostBack){CreateTreeView();}}/// <summary>/// 创建TreeView/// 此方法采取一次性加载目标数据到DataTable,递归查询DataTable,创建子节点/// </summary>private void CreateTreeView(){const int VirtualNodeId = 0;//虚拟根节点const string SqlStr = "select * from TreeDemo order by NodeID asc";string connStr = @"Data Source=ANLANTAN\SQLEXPRESS;Initial Catalog=vote;Integrated Security=True";SqlDataAdapter da = new SqlDataAdapter(SqlStr, connStr);DataTable dt = new DataTable();da.Fill(dt);CreateTreeViewRecursive(TreeMenu.Nodes, dt, VirtualNodeId);}private void CreateTreeViewRecursive(TreeNodeCollection nodes, DataTable dataSourse, int parentId){string filter = string.Format("ParentId={0}", parentId);//查询子节点DataRow[] drArr = dataSourse.Select(filter);TreeNode node;foreach (DataRow dr in drArr){node = new TreeNode();nodes.Add(node);node.Text = (string)dr["NodeName"];//node.Collapse();//node.Expand();//node.ExpandAll();//node.ShowCheckBox = true;node.ToolTip = node.Text;//递归创建子节点CreateTreeViewRecursive(node.ChildNodes, dataSourse, (int)dr["NodeID"]);}}} }
<%-- 前台代码--%> <body><form id="form1" runat="server"><div><asp:TreeView runat="server" ImageSet="Contacts" NodeIndent="10" ID="TreeMenu"><ParentNodeStyle Font-Bold="True" ForeColor="#5555DD" /><HoverNodeStyle Font-Underline="False" /><SelectedNodeStyle Font-Underline="True" HorizontalPadding="0px" VerticalPadding="0px" /><NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="0px" /></asp:TreeView></div></form> </body>