asp.Nettreeview再帰書き方


これは私がネット上で抜粋した再帰的な追加方法です.
asp     treeview   TreeVieww1,         DataTable   dt,   treeview      Text "name",Node "id",
   id "fatherid",
   asp       
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // DataTable
            DataTable dt = dtAdapter.GetClass();
            //
            newtree.AddTree(dt,TreeView1,"name","id","005000000000", (TreeNode)null);
        }
    }
  "005000000000"         id(   id/fatherid string   ),"(TreeNode)null"        TreeNode  。     ,
           ,       。
 //         
        public void AddTree(DataTable dt, TreeView tv, string NodeText, string NewNode, string FatherID, TreeNode pNode)
        {
            DataView dvTree = new DataView(dt);
            // FatherID,   
            dvTree.RowFilter = "fatherid=" + FatherID;
            foreach (DataRowView Row in dvTree)
            {
                TreeNode Node = new TreeNode();
                if (pNode == null)
                {         //   
                    Node.Text = Row[NodeText].ToString();
                    tv.Nodes.Add(Node);
                    Node.Expanded = true;
                    AddTree(dt, tv, NodeText, NewNode, Row[NewNode].ToString(), Node);         //   
                }
                else
                {       //   
                    Node.Text = Row[NodeText].ToString().ToString();
                    pNode.ChildNodes.Add(Node);
                    Node.Expanded = true;
                    AddTree(dt, tv, NodeText, NewNode, Row[NewNode].ToString(), Node);         //   
                }
            }
        }
           ,            。
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
           DataTable dt;
            object[] str = dt.Rows[0].ItemArray;
            TreeMenu.BindTree(TreeView1.Nodes[0], dt, str[dt.Columns["id"].Ordinal].ToString());

        }
    }
             。fatherid       。
  public static void BindTree(TreeNodeCollection Nds, DataTable dt, string id)
    {
        DataView dv = new DataView(dt);
        dv.RowFilter = "fatherid = '" + id.ToString() + "'";
        TreeNode node;
        foreach (DataRowView drv in dv)
        {
            node = new TreeNode();
            node.Value= drv["id"].ToString();
            node.Text = drv["name"].ToString();
            Nds.Add(node);
            BindTree(node.ChildNodes, dt, drv["id"].ToString());
        }
    }
          ,      。
       ,       。