Web Treeview 出现'subtree.all'为空或不是对象的错误

yongyong2006 2005-08-06 03:31:42
根据论坛中的一个解决方案:
解决选择一个结点后,全选所有其子结点.
但在获取所有选中结点的时候,发生了'subtree.all'为空或不是对象的错误
这个错误只在选中结点的子树没有展开过的情况下发生.
如果子结展开过或已经展过,则没有问题.
===================以下是示例代码=========================================

<script language="javascript">
<!--
var checkedNumber =0;
//初始化选中节点
function initchecknode()
{

var node=treePublicUserGroup.getTreeNode("00");
node.setAttribute("Checked","false");
setcheck(node,"false");
FindCheckedFromNode(treePublicUserGroup);
}
//oncheck事件
function tree_oncheck(tree)
{
var node=tree.getTreeNode(tree.clickedNodeIndex);
var Pchecked=tree.getTreeNode(tree.clickedNodeIndex).getAttribute("checked");
setcheck(node,Pchecked);
checkedNumber=0;
document.all.checkedPublicGroup.value="";
document.all.checkedPublicName.value="";
FindCheckedFromNode(treePublicUserGroup);
document.all.checkedCount.innerText ="选中的用户数为:" + checkedNumber;
}
//设置子节点选中
function setcheck(node,Pc)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();

if(parseInt(ChildNode.length)==0)
return;
else
{
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
if(parseInt(cNode.getChildren().length)!=0)
setcheck(cNode,Pc);
cNode.setAttribute("Checked",Pc);
}
}
}
//获取所有节点状态
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")==true)
{
AddChecked(cNode);
}
else
{

}
if (parseInt(cNode.getChildren().length) != 0 ) {
FindCheckedFromNode(cNode);
}
}
}
//Add checked node.
function AddChecked(node)
{
var nodeData = node.getAttribute("NodeData");
var nodeText;
var checkedData = document.all.checkedPublicGroup.value;
if(nodeData!="00" && nodeData.substring(0,1)!="1")
{
//check the dup phone number.
if(checkedData.indexOf(nodeData)==-1)
{
checkedNumber ++;

//
//
//
document.all.checkedPublicGroup.value += nodeData;
document.all.checkedPublicGroup.value += ',';
//
//
//
document.all.checkedPublicName.value += node.getAttribute("Text");
document.all.checkedPublicName.value += ',';
}

}
}
</script>
...全文
79 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangts 2005-12-15
  • 打赏
  • 举报
回复
我也订,紧急得很阿
yongyong2006 2005-08-08
  • 打赏
  • 举报
回复
继续顶,十万火急
yongyong2006 2005-08-08
  • 打赏
  • 举报
回复
自己顶一下,急盼高手出现

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧