以下可以实现:
如何全选TREENODE的Checkbox
选中
node.setAttribute("Checked","True");js遍历所有节点
var AllRootNode=new Array();
AllRootNode=TreeView1.getChildren();
AlertNode(AllRootNode); function AlertNode(NodeArray)
{
if(parseInt(NodeArray.length)==0)
return;
else
{
for(i=0;i<NodeArray.length;i++)
{
var cNode;
cNode=NodeArray[i];
alert(cNode.getAttribute("Text"));
if(parseInt(cNode.getChildren().length)!=0)
AlertNode(cNode.getChildren());
}
}
}
如何全选TREENODE的Checkbox
选中
node.setAttribute("Checked","True");js遍历所有节点
var AllRootNode=new Array();
AllRootNode=TreeView1.getChildren();
AlertNode(AllRootNode); function AlertNode(NodeArray)
{
if(parseInt(NodeArray.length)==0)
return;
else
{
for(i=0;i<NodeArray.length;i++)
{
var cNode;
cNode=NodeArray[i];
alert(cNode.getAttribute("Text"));
if(parseInt(cNode.getChildren().length)!=0)
AlertNode(cNode.getChildren());
}
}
}
------------------------------------------------------------------------------
哈哈,罗嗦。这不就是:让所有结点的checkBox=true 吗?!
//那是JS的,在客户端实现,而不是你的CodeBehind代码
{
TreeNode tn = e.Node;
switch(e.Action)
{
//只处理鼠标产生的改变
case TreeViewAction.ByMouse:
if(tn.Checked)
{
//子节点为True,则父节点也为True
this.setParentNodeCheck(tn,true); //父节点为True,则所有子节点为True
this.setChildNodeCheck(tn,true);
}
else
{
//父节点False,则子节点全部False
this.setChildNodeCheck(tn,false); //这个循环使当前指针指到同辈树节点的最后一个
while(tn.NextNode != null)
{
tn = tn.NextNode;
} bool bValue = false;
TreeNode tNode = null;
while(true)
{//判断是否同辈树节点里是否没有选中的叶子
if(tn != null)
{
if(tn.Checked)
{//如果有选中的叶子,跳出循环
bValue = true;
break;
}
tNode = tn;
tn = tn.PrevNode;
}
else
{
tn = tNode;
break;
}
} //如果父节点存在,则父节点选中的状态=bValue
this.setParentNodeCheck(tn,bValue);
}
break;
}
} /// <summary>
/// 递归函数,设置父节点的Check值。
/// </summary>
/// <param name="tNode">节点</param>
/// <param name="bValue">父节点的布尔值</param>
private void setParentNodeCheck(TreeNode tNode,bool bValue)
{
if(tNode.Parent != null)
{
tNode.Parent.Checked = bValue;
this.setParentNodeCheck(tNode.Parent,bValue);
}
} /// <summary>
/// 递归函数,设置子节点的Check值。
/// </summary>
/// <param name="tNode">节点</param>
/// <param name="bValue">子节点的布尔值</param>
private void setChildNodeCheck(TreeNode tNode,bool bValue)
{
foreach(TreeNode tnChild in tNode.Nodes)
{
tnChild.Checked = bValue;
this.setChildNodeCheck(tnChild,bValue);
}
}
我没有写过WebForm的TreeView,但是我想他们是相通的!
你只要做一些修改即可!