已有一个TreeView1 想把勾选的节点的值存入数据库中,代码如下:
protected void Button1_Click(odject sender,EventArgs e)
{
foreach(TreeNode node in TreeView1.Nodes)
{
 if(node.Checked)
{
  string value=node.Text;
   ...insert into  table(TEXT,roleID)Values(..)...这部分是没有问题的!
}
}
}
问题:没有进行循环,每次只插入第一个节点的数据,主要解决如何遍历TreeView1的所有节点这个问题,谢谢!

解决方案 »

  1.   

    正好刚做了一个TreeView绑定菜单,楼主看下有没有用
    public void TreeBind()
            {
                DataTable dt = agencyService.GetCitys();
                foreach(DataRow dr in dt.Rows)
                {
                    TreeNode tn = new TreeNode();
                    tn.Text = dr["Province"].ToString() + "(" + dr["counts"].ToString() + ")";
                    tn.Value = dr["Province"].ToString();
                    this.TreeView1.Nodes.Add(tn);
                }
                
            }
      

  2.   

    正好刚做了一个TreeView绑定菜单,楼主看下有没有用
    public void TreeBind()
            {
                DataTable dt = agencyService.GetCitys();
                foreach(DataRow dr in dt.Rows)
                {
                    TreeNode tn = new TreeNode();
                    tn.Text = dr["Province"].ToString() + "(" + dr["counts"].ToString() + ")";
                    tn.Value = dr["Province"].ToString();
                    this.TreeView1.Nodes.Add(tn);
                }
                
            }
      

  3.   

    调用
    foreach(TreeNode node in TreeView1.Nodes) 

    if(node.Checked) 

      string value=node.Text; 
      ...insert into  table(TEXT,roleID)Values(..)...这部分是没有问题的! 
    savevalue(node);

    } 递归函数
    void savevalue(TreeNode parentnode )
    {
    foreach(TreeNode node in parentnode.Nodes) 

    if(node.Checked) 
    {   string value=node.Text; 
      ...insert into  table(TEXT,roleID)Values(..)...这部分是没有问题的! 
    savevalue(node);//递归

    }
      

  4.   


    public TreeNode[] selectnode = new TreeNode[10000];
    private void getCheckedNode(TreeNode treenode)
            {
                for (int i = 0; i < treenode.Nodes.Count; i++)
                {
                    if (treenode.Nodes[i].Checked)
                    {
                        selectnode[nodeindex] = treenode.Nodes[i];
                        nodeindex++;
                    }
                    getCheckedNode(treenode.Nodes[i]);
                }
            }
      

  5.   

    还需要一个
    public int nodeindex = 0;调用for (int i = 0; i < TreeView1.Nodes.Count; i++)
                {
                    if (TreeView1.Nodes[i].Checked)
                    {
                        selectnode[nodeindex] = treenode.Nodes[i];
                        nodeindex++;
                    }
                    getCheckedNode(treenode.Nodes[i]);
                }
      

  6.   

    还需要一个
    public int nodeindex = 0;调用for (int i = 0; i < TreeView1.Nodes.Count; i++)
                {
                    if (TreeView1.Nodes[i].Checked)
                    {
                        selectnode[nodeindex] = treenode.Nodes[i];
                        nodeindex++;
                    }
                    getCheckedNode(treenode.Nodes[i]);
                }
      

  7.   


    protected void Button1_Click(odject sender,EventArgs e) 

    for(int i=0;i<TreeView1.Nodes.Count;i++)

    if(TreeView1.Nodes[i].Checked) 

      string value=Nodes[i].Text; 
      ...insert into  table(TEXT,roleID)Values(..)...这部分是没有问题的!