TreeView 树形控件 asp.net


前台:
<asp:TreeView ID="TreeView1" runat="server" ImageSet="Msdn" NodeIndent="10" ShowLines="True" ExpandDepth="0">
        <ParentNodeStyle Font-Bold="False" />
        <NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" HorizontalPadding="5px"
                        NodeSpacing="1px" VerticalPadding="2px" />
                      
        <SelectedNodeStyle BackColor="#4a5bb1" ForeColor="white" />
 </asp:TreeView>


后台:
//已经定义好的数据
protected DataSet ds = new DataSet();
CreateTree(this.TreeView1.Nodes,""); 

//用递归的方法显示树形目录
        private void CreateTree(TreeNodeCollection TNCs, string strParentId)
        {
            TreeNode tmpTNCs = new TreeNode();
            DataView dv = new DataView();
            dv.Table = ds.Tables[0];
            string strID;
            if (strParentId == "")
            {
                dv.RowFilter = "isnull(ParentFunctionID,0)=0";
            }
            else
            {
                dv.RowFilter = "ParentFunctionID = " + strParentId;
            }
            foreach (DataRowView drv in dv)
            {
                tmpTNCs = new TreeNode();							//定义结点
                strID = drv["subID"].ToString();
                tmpTNCs.Value = strID;														//定义结点ID
                tmpTNCs.Text = drv["subName"].ToString();									//定义结点文字
                //tmpTNCs.ImageUrl = "img/folderclose.gif";									//定义图片
                //tmpTNCs.ExpandedImageUrl = "img/folderopen.gif";								//定义打开的图片
                tmpTNCs.NavigateUrl = drv["Url"].ToString();			//定义结点联接
                tmpTNCs.Target = "main";
                if (tmpTNCs.NavigateUrl == "right.aspx")
                    tmpTNCs.SelectAction = TreeNodeSelectAction.None;                           //选择不触发事件
                TNCs.Add(tmpTNCs);																//添加结点
                CreateTree(TNCs[TNCs.Count - 1].ChildNodes, strID);								//递归调用

                //选定某个结点
                if (Request.Params["subID"] != null)
                {
                    if (strID == Request.Params["subID"].ToString())
                    {
                        //将选定结点的所有上级结点的Expanded属性全设为true,即展开结点
                        string strNodeIndex = TNCs[TNCs.Count - 1].Value;
                        string[] strExpandLevel = strNodeIndex.Split('.');
                        TreeNode TN = this.TreeView1.Nodes[int.Parse(strExpandLevel[0])];
                        TN.Expanded = true;
                        for (int i = 1; i < strExpandLevel.Length; i++)
                        {
                            int ii = int.Parse(strExpandLevel[i]);
                            TN = TN.ChildNodes[ii];
                            TN.Expanded = true;
                        }
                        //选定结点
                        this.TreeView1.SelectedNode.Value = strNodeIndex;
                    }
                }
            }
        }

原文地址:https://www.cnblogs.com/henw/p/2091086.html