TreeView命名为tvMonitorySite,导入using System.Data.SqlClient protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindTreeView(tvMonitorySite, true, "1", ""); } } /// <summary> /// 绑定TreeView /// </summary> /// <param name="treeview">控件TreeView</param> /// <param name="isExpend">是否展开</param> /// <param name="sSelectData">默认选中的节点</param> /// <param name="roleId">角色ID</param> public void BindTreeView(TreeView treeview,bool isExpend,string sSelectData,string roleId ) { string sqlSelect="SELECT [ID],[Text],[Url],[IconCls],[ParentID] FROM [Menu]"; DataTable dataTable = DBHelper.GetDataTable(sqlSelect, CommandType.Text, null); treeview.Nodes.Clear(); TreeNode root = new TreeNode(); root.Text = "导航菜单列表"; root.Value = "0"; root.ShowCheckBox = true; root.Selected = true; root.Expanded = isExpend; root.Checked = true; treeview.Nodes.Add(root); CreateChildNode(dataTable, root, isExpend, sSelectData); } /// <summary> /// 创建子节点 /// </summary> /// <param name="dataTable">DataTable</param> /// <param name="parentNode">父结点</param> /// <param name="isExpend">是否展开</param> /// <param name="sSelectData">默认选中的节点</param> private void CreateChildNode(DataTable dataTable,TreeNode parentNode,bool isExpend,string sSelectData) { DataRow[] rowList = dataTable.Select("ParentID=" + parentNode.Value); foreach (DataRow row in rowList) { TreeNode node = new TreeNode(); node.Text = row["Text"].ToString(); node.Value = row["ID"].ToString(); node.ShowCheckBox = true; node.Expanded = isExpend; if (node.Value==sSelectData) { node.Selected = true; } parentNode.ChildNodes.Add(node); CreateChildNode(dataTable, node, isExpend, sSelectData); } }