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

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:10:23
字體:
供稿:網(wǎng)友

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

代碼如下:
//獲取元素指定tagname的父元素
function public_getparentbytagname(element, tagname)
{
    var parent = element.parentnode;
    var uppertagname = tagname.touppercase();
    //如果這個元素還不是想要的tag就繼續(xù)上溯
    while (parent && (parent.tagname.touppercase() != uppertagname))
    {
        parent = parent.parentnode ? parent.parentnode : parent.parentelement;
    }
    return parent;
}

//設(shè)置節(jié)點的父節(jié)點cheched——該節(jié)點可訪問,則他的父節(jié)點也必能訪問
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é)點的子節(jié)點uncheched——該節(jié)點不可訪問,則他的子節(jié)點也不能訪問
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é)點的子節(jié)點cheched——該節(jié)點可以訪問,則他的子節(jié)點也都能訪問
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ā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 上思县| 南开区| 常熟市| 监利县| 汶上县| 宜州市| 大英县| 许昌市| 苍溪县| 广灵县| 泸州市| 凤庆县| 恩平市| 宁安市| 永靖县| 日照市| 三门县| 河北区| 南陵县| 阿坝县| 枣阳市| 沂水县| 望谟县| 涿州市| 金华市| 长沙市| 南投市| 天镇县| 乐陵市| 承德市| 阳谷县| 乌海市| 陇西县| 河西区| 碌曲县| 醴陵市| 平凉市| 绥化市| 大城县| 黔西县| 峨山|