TreeView中通过Checkbox控制节点被选中,现在不知道 如何取得所有选中节点的数据
在线等

解决方案 »

  1.   

    /// <summary>
    /// 节点的选中
    /// </summary>
    /// <param name="sender">TreeView对象</param>
    /// <param name="e">TreeViewClickEventArgs事件的对象</param>
    private void tvRight_Check(object sender, Microsoft.Web.UI.WebControls.TreeViewClickEventArgs e)
    {
    TreeNode tn = ((Microsoft.Web.UI.WebControls.TreeView)sender).GetNodeFromIndex(e.Node);
    if(tn.Checked )
    {
    //取值
    }

    }
      

  2.   

    //获取所有节点状态
                function FindCheckedFromNode(node) 
                {
                    var i = 0;
                    var nodes = new Array();
                    nodes = node.getChildren();
                     
                    for (i = 0; i < nodes.length; i++) 
                    {
                        var cNode;
                        cNode=nodes[i];
                        if (cNode.getAttribute("checked"))
                            AddChecked(cNode);
                        else
                            AddUnChecked(cNode);
                          
                        if (parseInt(cNode.getChildren().length) != 0 ) 
                        {
                            FindCheckedFromNode(cNode);
                        }
                    }
                }
                //添加选中节点
                function AddChecked(node) 
                {
                    document.all.checkedNodes.value += node.getAttribute("NodeData");
                    document.all.checkedNodes.value += ',';
                }
      

  3.   

    遍历树,判断节点Checked属性
      

  4.   

    SelectedNodes
    然后循环这个集合就行
      

  5.   

    to 我问的是winform,不是web两种方法:
    1、如果是后期处理的话,需要遍历整个treeview,然后通过判断TreeNode.Checked属性来判断是否选中,然后加载到ArrayList中。2、如果在TreeNode选中的时候进行处理的话,那么TreeView提供AfterCheck事件,通过判断当前节点是否被选中,然后加载到局部集合中(加之前,最好判断是否已经存在)