国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

Asp.Net2.0權(quán)限樹(shù)中Checkbox的操作

2020-01-18 01:53:34
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  這里使用asp.net2.0的TreeView控件結(jié)合JavaScript實(shí)現(xiàn)權(quán)限樹(shù)的部分功能。
  假設(shè)權(quán)限樹(shù)中有如下三條規(guī)則:
  1、該節(jié)點(diǎn)可以訪問(wèn),則他的父節(jié)點(diǎn)也必能訪問(wèn);
  2、該節(jié)點(diǎn)可以訪問(wèn),則他的子節(jié)點(diǎn)也都能訪問(wèn);
  3、該節(jié)點(diǎn)不可訪問(wèn),則他的子節(jié)點(diǎn)也不能訪問(wèn)。

代碼如下:
//獲取元素指定tagName的父元素
function public_GetParentByTagName(element, tagName)
{
    var parent = element.parentNode;
    var upperTagName = tagName.toUpperCase();
    //如果這個(gè)元素還不是想要的tag就繼續(xù)上溯
    while (parent && (parent.tagName.toUpperCase() != upperTagName))
    {
        parent = parent.parentNode ? parent.parentNode : parent.parentElement;
    }
    return parent;
}

//設(shè)置節(jié)點(diǎn)的父節(jié)點(diǎn)Cheched――該節(jié)點(diǎn)可訪問(wèn),則他的父節(jié)點(diǎn)也必能訪問(wèn)
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);
}

//設(shè)置節(jié)點(diǎn)的子節(jié)點(diǎn)uncheched――該節(jié)點(diǎn)不可訪問(wèn),則他的子節(jié)點(diǎn)也不能訪問(wèn)
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);
    }
}

//設(shè)置節(jié)點(diǎn)的子節(jié)點(diǎn)cheched――該節(jié)點(diǎn)可以訪問(wèn),則他的子節(jié)點(diǎn)也都能訪問(wèn)
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);
    }
}

//觸發(fā)事件
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);
    }
}

然后在page_load事件中將TreeView與js事件綁定上:

this.TreeView1.Attributes.Add("onclick", "CheckEvent()");

 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 德庆县| 聂拉木县| 安仁县| 临夏市| 察隅县| 宜兰县| 南木林县| 全州县| 安新县| 内乡县| 潜江市| 鄱阳县| 綦江县| 微山县| 古浪县| 龙口市| 凤台县| 隆尧县| 城步| 略阳县| 蓬溪县| 滨州市| 清水河县| 高雄市| 尚志市| 潜江市| 离岛区| 清新县| 宁蒗| 临猗县| 温宿县| 乐亭县| 凤冈县| 道孚县| 镇原县| 南京市| 昂仁县| 柳州市| 福贡县| 屯门区| 富宁县|