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;

                    }

                }

            }

        }


你可能感兴趣的:(treeview)