JavaScript对TreeView的操作
<script language="javascript">
<!--
//初始化选中节点
function initchecknode()
{
var node=TreeView1.getTreeNode("1");
node.setAttribute("Checked","true");
setcheck(node,"true");
FindCheckedFromNode(TreeView1);
}
//oncheck事件
function tree_oncheck(tree)
{
var node=TreeView1.getTreeNode(TreeView1.clickedNodeIndex);
var Pchecked=TreeView1.getTreeNode(TreeView1.clickedNodeIndex).getAttribute("checked");
setcheck(node,Pchecked);
}
//选择具有焦点的结点
TreeView1.getTreeNode(TreeView1.selectedNodeIndex).getAttribute("Text")
//设置子节点选中
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 GetCheck(node)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();
if(ChildNode) //如存在子结点
{
for(i=0;i<ChildNode.length;i++)
{
cNode=ChildNode[i];
if(cNode.getAttribute("Checked"))
{
if(Form1.NodeState.value =="")
{
Form1.NodeState.value = cNode.getAttribute("NodeData");
Form1.NodeState_text.value= cNode.getAttribute("Text");
}
else
{
Form1.NodeState.value = Form1.NodeState.value +"," + cNode.getAttribute("NodeData");
Form1.NodeState_text.value = Form1.NodeState_text.value + "," + cNode.getAttribute("Text");
}
}
if(cNode.getChildren())
{
GetCheck(cNode);
}
}
}
else
{
return;
}
}
//如一个结点被选中,则其所有子结点选中
function SetCheck(node,Pc)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();
if(ChildNode) //如存在子结点
{
for(i=0;i<ChildNode.length;i++)
{
cNode=ChildNode[i];
cNode.setAttribute("Checked",Pc);
if(cNode.getChildren())
{
SetCheck(cNode,Pc);
}
}
}
else
{
return;
}
}
//如一个结点被选中,则其所有子结点选中(全选)
function SetCheck(node,Pc)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();
if(ChildNode) //如存在子结点
{
for(i=0;i<ChildNode.length;i++)
{
cNode=ChildNode[i];
cNode.setAttribute("Checked",Pc);
if(cNode.getChildren())
{
SetCheck(cNode,Pc);
}
}
}
else
{
return;
}
}
//如一个结点下的所有结点均未选中,则其父结点处于未选中状态
function UnCheck(node,Pc)
{
if(Pc==false)
{
if(node.getParent())
{
cNode=node.getParent();
cNode.setAttribute("Checked",false);
SetUnCheck(cNode,Pc);
}
}
else
{
return;
}
}
function SetUnCheck(node,Pc)
{
var i;
var theNode;
var ChildNode=new Array();
ChildNode=node.getChildren();
if(parseInt(ChildNode.length)!=0)
{
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
if(cNode.getAttribute("Checked")==true)
{
theNode=cNode.getParent();
theNode.setAttribute("Checked",true);
}
if(parseInt(cNode.getChildren().length)!=0)
{
SetUnCheck(cNode,Pc);
}
}
}
else
{
return;
}
}
//如一个结点被选中,则其所有父结点均处于选中状态
function SetParentCheck(node,Pchecked)
{
var cNode;
if(Pchecked==true)
{
if(node.getParent())
{
cNode=node.getParent();
cNode.setAttribute("Checked",true);
SetParentCheck(cNode,Pchecked);
}
}
else
{
return;
}
}
//-->
</script>