在一个功能模块里,一个数据库里的表是部门信息表,有两个字段,表示部门,两个字段是父子关系,如果新建部门的话,可以无限级地新建部门.我想把部门信息通过树形目录在页面上显示出来,用递归法,如何写呀?请教各位大虾.

解决方案 »

  1.   

    下载 ms treeview 控件!即可!!1
      

  2.   

    private void BuildTree(TreeNode parentNode)
        {
            SqlConnection tempConnection = new SqlConnection(m_ConnectionString);
            tempConnection.Open();
            try
            {
                DataSet tempSet = new DataSet();
                SqlDataAdapter tempAdapter = new SqlDataAdapter("GetTree", tempConnection);
                tempAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;
                tempAdapter.SelectCommand.Parameters.AddWithValue("@parentId", int.Parse(parentNode.Value));
                tempAdapter.Fill(tempSet);            foreach (DataRow row in tempSet.Tables[0].Rows)
                {
                    TreeNode tempNode = new TreeNode();
                    tempNode.Text = row["name"].ToString();
                    tempNode.Value = row["id"].ToString();                parentNode.ChildNodes.Add(tempNode);                BuildTree(tempNode);
                }        }
            finally
            {
                if (tempConnection.State == ConnectionState.Open)
                    tempConnection.Close();
            }   
        }
    递归参考以上代码
      

  3.   

    http://msdn.microsoft.com/downloads/samples/internet/ASP_DOT_NET_ServerControls/WebControls/default.asp 
    安装后,通过“自定义工具箱”->“.net框架组件”把TreeView添加到工具箱里
      

  4.   

    请参考:轻松搞定深层次(多级)分类管理—TreeView控件在ASP.NET中的应用
    http://mydotnet.blog.edu.cn/user2/welldone/archives/2006/1147835.shtml
      

  5.   

    用05.NET的自带属性控件就OK了
      

  6.   

    private void BindPopulateNodesNews()
        {
            DataTable dtMenuNews = TypesManager.GetTypeByParentAndCategory(CTypesCategory.News.ID, 0);
            DataRow[] drMenuNews = dtMenuNews.Select("ParentID=0");
            for (int i = 0; i < drMenuNews.Length; i++)
            {
                TreeNode tnNodeNews = new TreeNode();
                tnNodeNews.Expanded = false;
                tnNodeNews.Text = UtilTool.ToSafeString(drMenuNews[i]["Name"]);
                tnNodeNews.Value = UtilTool.ToSafeString(drMenuNews[i]["ID"]);
                tnNodeNews.NavigateUrl = "NewsRight.aspx?NewsTypeID=" + tnNodeNews.Value;
                tnNodeNews.Target = "frmRight";
                tvNews.Nodes.Add(tnNodeNews);
            }
        }
    好像用框架