zoukankan      html  css  js  c++  java
  • asp,net 实现treeview 选种父节点其子节点也选种

    懒人,我给你发一个源码:

    在 Page_Load(object sender, EventArgs e) 里面加入: TreeView1.Attributes.Add("onclick", "CheckEvent(event)");//TreeView1是你树控件的名称。下面的 javascript 放到 <head></head> 之间

     

    <script type="text/javascript">
    function CheckEvent(evt)
    {
    evt=window.event||evt;
    var objNode = evt.srcElement||evt.target;
    if(objNode.tagName == "INPUT" && objNode.type== "checkbox")
    {
    var objParentDiv = objNode.id.replace("CheckBox","Nodes");
    if(objNode.checked==true)
    {
    setChildCheckState(objParentDiv,true);

    setParentCheckeState(objNode,true);
    }
    else
    {
    setChildCheckState(objParentDiv,false);

    if(!HasOtherChecked(objNode)){
    setParentCheckeState(objNode,false);
    }
    }
    }
    }

    //判断是否有并行的其他节点被选中
    function HasOtherChecked(objNode)
    {
    var objParentDiv = WebForm_GetParentByTagName(objNode, "div");

    var chks = objParentDiv.getElementsByTagName("INPUT");
    for(var i=0;i<chks.length;i++){
    if(chks[i].checked && chks[i].id != objNode.id)
    {
    return true;
    }
    }
    return false;
    }

    //设置父节点
    function setParentCheckeState(objNode,chkstate)
    {
    try{
    var objParentDiv = WebForm_GetParentByTagName(objNode, "div");

    if(objParentDiv == null || objParentDiv == "undefined "){
    return;
    }
    else{
    var objParentChkId = objParentDiv.id.replace("Nodes","CheckBox");
    var objParentCheckBox = document.getElementById(objParentChkId);

    if(objParentCheckBox){
    objParentCheckBox.checked = chkstate;
    setParentCheckeState(objParentDiv,chkstate);
    }
    }
    }
    catch(e){}
    }

    //设置子节点
    function setChildCheckState(nodeid,chkstate)
    {
    var node = document.getElementById(nodeid);

    if(node){
    var chks = node.getElementsByTagName("INPUT");
    for(var i=0;i<chks.length;i++){
    chks[i].checked = chkstate;
    }
    }
    }
    </script>

  • 相关阅读:
    【leetcode_easy】589. N-ary Tree Preorder Traversal
    【linux基础】Ubuntu下的终端多标签切换快捷键
    车道线检测github集锦
    [c++]struct timeval
    [opencv] copyTo函数的使用方法
    [c++]C++关键字之friend
    【动手学深度学习】Jupyter notebook中 import mxnet出错
    【opencv】split
    【leetcode_easy】581. Shortest Unsorted Continuous Subarray
    第1课 学习Lua的意义
  • 原文地址:https://www.cnblogs.com/agen/p/2038058.html
Copyright © 2011-2022 走看看