如何获取treeview选中的checkbox的节点的NodeData值,就象ASP里面相同CHECKBOX一样,提交后得到如(1,2,4,5,6,7)一直的数组?
还有个问题就是如何过滤.net中treeview的节点,如我现在在数据库中读出来的值是1,2,3,5
所以我的节点4的checkbox应该是没有选中的,其他都是选中的
高分在线求答案

解决方案 »

  1.   

    ArrayList ar = new ArrayList();
    public void AddDate(int ParentID,TreeNodeCollection nodes) 
    {
    foreach(TreeNode node in nodes)
                            {
                                    if(node.Checked)
                                     {
                                        ar.Add(node.NodeData);
                                     }
                                     AddData(node.Nodes);
                            }
    }
      

  2.   

    public void InitTree(TreeNodeCollection nodes) 
    {
    foreach(TreeNode node in nodes)
                            {
                                     DataRow[] drs = dt.select("ID="+node.ID)
                                     if(drs.Length>=1)
                                     {
                                          node.Checked = true;
                                      }
                                     InitTree(nodes)
                                                        }
    }每个函数调用时的参数都是treeView.Nodes
      

  3.   

    public void InitTree(TreeNodeCollection nodes) 
    {
    foreach(TreeNode node in nodes)
                            {
                                     DataRow[] drs = dt.select("ID="+node.ID)
                                     if(drs.Length>=1)
                                     {
                                          node.Checked = true;
                                      }
                                     InitTree(nodes)
                                                        }
    }
      

  4.   

    string GetData(TreeNodeCollection treeNodes)
    {
    string strData = "";
    foreach(TreeNode node in treeNodes)
    {
    string strSubData = GetData(node.Nodes);
    if(node.Checked)
    {
    if(strSubData != "" || strSubData != ",")
    {
    strData += "," + node.Text + "," + strSubData;
    }
    else
    {
    strData += "," + node.Text
    }
    }
    else
    {
    if(strSubData != "" || strSubData != ",")
    {
    strData += "," + GetData(node.Nodes)
    }
    }
    }
    if(strData != "")
    {
    return strData.Substring(1);
    }
    else
    {
    return strData;
    }
    }
    这是求返回结果的方法,基本就是这个过程,我没调试,不过应该差不多,你对照你的要求简单修改一下就可以用了。
    初始的方法类似,比这个要简单,而且楼上有贴的,我就不多说了。