国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 夏津县| 铜鼓县| 永昌县| 泽库县| 高邮市| 大田县| 和顺县| 巨野县| 宝坻区| 威远县| 资阳市| 贵阳市| 芦山县| 荆州市| 定边县| 吴江市| 苗栗县| 新田县| 安庆市| 汕尾市| 阳新县| 无为县| 铁岭县| 通许县| 湘乡市| 临沂市| 同心县| 西城区| 凉城县| 铜川市| 隆化县| 太康县| 吐鲁番市| 长沙县| 和田县| 石家庄市| 手机| 宁波市| 吉木乃县| 堆龙德庆县| 凌海市|