JavaScript对TreeView的操作全解

  <script language="C#" runat="server">
 private void Page_Load(object sender, System.EventArgs e)
 {  
  TreeView1.Attributes.Add("oncheck","tree_oncheck(this)");
 }
  </script>


  <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);
 }
 
 //设置子节点选中
 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;
  }
 }

  
 
 function Check_edit()
 {//进行修改前的验证
 
  var s;
  var ss;
  s=Form1.NodeState.value;
  ss=s.split(",")
  if(ss[0]=="")
  {
   alert("在进行'修改'操作之前请进行选择!");
   return false;
  }
  if(ss.length>1)
  {
   alert("在进行'修改'操作时只能选择一项!");
   return false;
  }
 
 }
 
 
 //进行删除时的验证
 function Check_dele()
 {
  var s;
  var ss;
  s=Form1.NodeState.value;
  ss=s.split(",")
  if(ss[0]=="")
  {
   alert("在进行'删除'操作之前请进行选择!");
   return false;
  }
 
 }
 
 
 //进行修改前的验证
 function Check_edit()
 {
 
  var s;
  var ss;
  s=Form1.NodeState.value;
  ss=s.split(",")
  if(ss[0]=="")
  {
   alert("在进行'修改'操作之前请进行选择!");
   return false;
  }
  if(ss.length>1)
  {
   alert("在进行'修改'操作时只能选择一项!");
   return false;
  }
 
 }
 
 
 //进行删除时的验证
 function Check_dele()
 {
  
  var s;
  var ss;
  s=Form1.NodeState.value;
  ss=s.split(",")
  if(ss[0]=="")
  {
   alert("在进行'删除'操作之前请进行选择!");
   return false;
   
  }
  else
  {
   if(!confirm("你真的要删除吗?"))
   {
    return false;
   }
  }
 }
 
 
 //进行添加操作时的验证
 function Check_add()
 {
  var s;
  var ss;
  s=Form1.NodeState.value;
  ss=s.split(",")
  if(ss[0]=="")
  {
   alert("在进行'添加'操作之前请选择上级模块!");
   return false;
  }
  if(ss.length>1)
  {
   alert("在进行'添加'操作时只能选择一项!");
   return false;
  }
 }
 
 //-->

  </script> 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值