javascript实现TreeView 无刷新展开的实例代码

 更新时间:2013年07月13日 14:17:08   作者:  
这篇文章介绍了javascript实现TreeView 无刷新展开的实例代码,有需要的朋友可以参考一下
复制代码 代码如下:

function public_GetParentByTagName(element, tagName) 
{
    var parent = element.parentNode;
    var upperTagName = tagName.toUpperCase();
    //如果这个元素还不是想要的tag就继续上溯
    while (parent && (parent.tagName.toUpperCase() != upperTagName)) 
    {
        parent = parent.parentNode ? parent.parentNode : parent.parentElement;
    }
    return parent;
}
//设置节点的父节点Cheched——该节点可访问,则他的父节点也必能访问
function setParentChecked(objNode)

    var objParentDiv = public_GetParentByTagName(objNode,"div");
    if(objParentDiv==null || objParentDiv == "undefined")
    {
        return;
    }
    var objID = objParentDiv.getAttribute("ID");
    objID = objID.substring(0,objID.indexOf("Nodes"));
    objID = objID+"CheckBox";
    var objParentCheckBox = document.getElementById(objID);
    if(objParentCheckBox==null || objParentCheckBox == "undefined")
    {
        return;
    } 
    if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
    return; 
    objParentCheckBox.checked = true;
    setParentChecked(objParentCheckBox);
}
//设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问
function setChildUnChecked(divID)

    var objchild = divID.children;
    var count = objchild.length; 
    for(var i=0;i<objchild.length;i++)
    {
        var tempObj = objchild[i];
        if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
        {
            tempObj.checked = false;
        }
        setChildUnChecked(tempObj); 
    }
}
//设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问
function setChildChecked(divID)

    var objchild = divID.children;
    var count = objchild.length; 
    for(var i=0;i<objchild.length;i++)
    {
        var tempObj = objchild[i];
        if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
        {
            tempObj.checked = true;
        }
        setChildChecked(tempObj); 
    }
}
//触发事件
function CheckEvent()
{
    var objNode = event.srcElement; 
    if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
    return;
    if(objNode.checked==true)
    {
        setParentChecked(objNode);
        var objID = objNode.getAttribute("ID");
        var objID = objID.substring(0,objID.indexOf("CheckBox")); 
        var objParentDiv = document.getElementById(objID+"Nodes");
        if(objParentDiv==null || objParentDiv == "undefined")
        {
            return;
        } 
        setChildChecked(objParentDiv);
    }
    else
    {
        var objID = objNode.getAttribute("ID");
        var objID = objID.substring(0,objID.indexOf("CheckBox")); 
        var objParentDiv = document.getElementById(objID+"Nodes");
        if(objParentDiv==null || objParentDiv == "undefined")
        {
            return;
        } 
        setChildUnChecked(objParentDiv);
    }
}

服务端控件
复制代码 代码如下:

this.tvPrivilege.Attributes.Add("OnClick", "CheckEvent()");  

相关文章

  • 微信小程序加载机制及运行机制图解

    微信小程序加载机制及运行机制图解

    这篇文章主要介绍了微信小程序加载机制及运行机制图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • js的indexOf方法使用

    js的indexOf方法使用

    indexOf() 方法可返回数组中某个指定的元素位置,本文就来介绍一下js的indexOf方法使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-05-05
  • javascript对JSON数据排序的3个例子

    javascript对JSON数据排序的3个例子

    这篇文章主要介绍了javascript对JSON数据排序的3个例子的相关资料
    2014-04-04
  • javascript生成随机颜色示例代码

    javascript生成随机颜色示例代码

    这篇文章主要介绍了使用javascript如何生成随机颜色,需要的朋友可以参考下
    2014-05-05
  • 基于javascript实现日历功能原理及代码实例

    基于javascript实现日历功能原理及代码实例

    这篇文章主要介绍了基于javascript实现日历效果原理及代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • JavaScript中的迭代器和可迭代对象与生成器

    JavaScript中的迭代器和可迭代对象与生成器

    这篇文章主要介绍了JavaScript中的迭代器和可迭代对象与生成器,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 小程序实现分类页

    小程序实现分类页

    这篇文章主要为大家详细介绍了小程序实现好看的分类页,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • 如何在JavaScript中等分数组的实现

    如何在JavaScript中等分数组的实现

    这篇文章主要介绍了如何在JavaScript中等分数组的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 微信小程序与axios组成网络层封装过程详解

    微信小程序与axios组成网络层封装过程详解

    小程序在网络层提供的API是能够完成一个程序与服务端交互的完整链路,但需要大量的定制化代码,才能实现请求拦截和响应拦截,不太符合大多数开发者的使用习惯,对于前端开发者来说,网络层还得是axios
    2023-02-02
  • javascript 对象比较实现代码

    javascript 对象比较实现代码

    js对象比较实现代码。
    2009-04-04

最新评论