五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > asp.net中TreeView的CheckBox 是否選中

asp.net中TreeView的CheckBox 是否選中

文章來源:365jz.com     點擊數(shù):3876    更新時間:2009-09-16 11:53   參與評論

var ClienName;

function OnTreeNodeChecked(controlID,obj)
{
    tree=obj;//取出TreeView在客戶端的表示對象
    ClienName=tree.id.substring(0,tree.id.indexOf(controlID));//取出TreeView在客戶ID的前綴
  
    var ele = event.srcElement;
    if(ele.type=='checkbox')
    {
        //當前節(jié)點全選
        var subLength=ClienName.length+14;//取出當前復選框的索引值
        var subLength=tree.id.length+1;
        var nowIndex=ele.id.substring(subLength)
    .substring(0,ele.id.substring(subLength).indexOf("C"));
        var childrenDivID = ele.id.replace('CheckBox','Nodes');
        var div = document.getElementById(childrenDivID); //獲取同級的Div
        if(div!=null) //判斷同級的Div是否為Null
        {
            var checkBoxs = div.getElementsByTagName('INPUT');
            for(var i=0;i<checkBoxs.length;i++)
            {
                if(checkBoxs[i].type=='checkbox')
                checkBoxs[i].checked=ele.checked;
            }
        }
        //處理選擇當前節(jié)點的父節(jié)點的選中和取消選中
        ChkParent(nowIndex,ele.id,ele.checked);
    }
}
//上一節(jié)點的索引Index,上一節(jié)點checkBox的ID,狀態(tài)(True)
function ChkParent(index,childId,flag)
{
//尋找當前節(jié)點的父節(jié)點(即尋找上級的DIV)
    for(i=index;i>=0;i--)
    {
        var id=tree.id+"n"+i+"CheckBox";//當前CheckBox的ID
        var parent=document.getElementById(id);//獲取當前的CheckBox
        if(parent!=null)//判斷獲取的當前的CheckBox是否為空
        {  
            var childrenDivID = parent.id.replace('CheckBox','Nodes');
            var div = document.getElementById(childrenDivID); //獲取同級的Div
            if(div==null) //判斷同級的Div是否為Null
            {
                continue;
            }
            else
            {
                  chk(div,flag);
                    break;
            }
        }
    }
}
//根據(jù)找到的div逐級處理各級CheckBox的狀態(tài)
function chk(obj,flag)
{
    var chkID=obj.id.replace('Nodes','CheckBox');
    var chkbox = document.getElementById(chkID); //獲取同級的CheckBox
    if(chkbox!=null)
    {
        //選中狀態(tài)
        if(flag)
        {
            chkbox.checked=flag;
            //如果為頂層則終止遞歸
            if(chkID==tree.id+"n0CheckBox")
            {
                return;
            }
            //遞歸處理各級CheckBox的狀態(tài)
            chk(obj.parentNode,flag);
        }
        ///非選中狀態(tài)
        else
        {
            //如果為頂層則終止遞歸
            if(chkID==tree.id+"n0CheckBox")
            {
                return;
            }
            //判斷當前節(jié)點下面是否有Checkbox選中,如果有選中的,當前節(jié)點的CheckBox不取消選中狀態(tài),否則取消
            var checkBoxs = obj.getElementsByTagName('INPUT');
            var sel=false;//記錄當前節(jié)點下面是否有Checkbox選中
            for(var i=0;i<checkBoxs.length;i++)
            {
                if(checkBoxs[i].type=='checkbox')
                {
                    if( checkBoxs[i].checked)
                    {
                        sel=true;
                        break;
                    }
                }
            }
            if(!sel)
            {
                chkbox.checked=flag;
            }
            chk(obj.parentNode,flag);
        }
    }
    else
    {
        return;
    }
}

前臺調用:tvPeople.Attributes.Add("onclick", "OnTreeNodeChecked('" + tvPeople.ID + "'," + tvPeople.ClientID + ")");

tvPeople為TreeView控件的實例名

根據(jù)一個checkbox節(jié)點對應一個table,父節(jié)點對應一個div 在找到相應的checkbox.進而判斷選擇與否.

Tag標簽: asp.net,treeview,checkbox節(jié)點選中

如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答??! 點擊進入論壇

發(fā)表評論 (3876人查看0條評論)
請自覺遵守互聯(lián)網(wǎng)相關的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務咨詢

· 技術支持
· 服務時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權所有 鄂ICP備17013400號