假设一个部门表,三个字段
DeptID
DeptName
ParentDept
有个getAllDept的方法,返回所有的dept对象,怎么将这些数据绑定到treeview里?

解决方案 »

  1.   

    TreeNode , Nodes , and 递归
      

  2.   


            DataSet dst = GetTreeViewData();
            TreeView1.ShowCheckBoxes = TreeNodeTypes.All;
            foreach (DataRow masterRow in dst.Tables["province"].Rows)
            {
                TreeNode masterNode = new TreeNode((string)masterRow["province"]);
                TreeView1.Nodes.Add(masterNode);
                foreach (DataRow childRow in masterRow.GetChildRows("Children"))
                {
                    TreeNode childNode =new TreeNode((string)childRow["city"]);
                    masterNode.Expanded = false;
                    masterNode.ChildNodes.Add(childNode);
                }
            }
      

  3.   

    using Microsoft.Web.UI.WebControls;
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    namespace test
    {
    public class WebForm1 : System.Web.UI.Page
    {
    protected Microsoft.Web.UI.WebControls.TreeView tv;private void Page_Load(object sender, System.EventArgs e)
    {
    if (!Page.IsPostBack)
    {bindtree(tv.Nodes,"0");}
    }
    private void bindtree(TreeNodeCollection Nds , string depid)
    {
    DataSet ds=bindds();//获取DataSet,具体代码略
    DataView dv=ds.Tables["tree"].DefaultView;
    dv.RowFilter="HiDepID="+depid;
    TreeNode tn;
    string strID;
    foreach(DataRowView dr in dv)
    {
      strID=dr["DepID"].ToString();
      if (strID!="")
      {
       tn=new TreeNode();
       tn.ID=dr["DepID"].ToString();
       tn.Text=dr["Name"].ToString();
       Nds.Add(tn);
       bindtree(Nds[Nds.Count-1].Nodes,strID);
      }
    }
    }
    }
    }

    数据库结构:
    CREATE TABLE [dbo].[tbDep] (
        [DepID] [smallint] IDENTITY (1, 1) NOT NULL ,
        [DepName] [varchar] (50) NOT NULL ,
        [HiDepID] [smallint] NULL ,
    )