电竞比分网-中国电竞赛事及体育赛事平台

分享

實現(xiàn)asp.net Treeview的自選父背選擇,或者父親選擇子全選

 實力決定地位 2010-11-30

//這是子選擇父親選擇

//在cs page_load里面加一個注冊代碼   Tree_Target.Attributes.Add("onclick", "OnTreeNodeChecked()");//Tree_Target是我的樹控件ID

<script language='javascript' type='text/javascript'>
    function OnTreeNodeChecked() {
        var ele = event.srcElement;
        if (ele.type == 'checkbox') {
            var childrenDivID = ele.id.replace('CheckBox', 'Nodes');
            var div = document.getElementById(childrenDivID);
            if (div == null) {

            }
            else {
                var checkBoxs = div.getElementsByTagName('INPUT');
                for (var i = 0; i < checkBoxs.length; i++) {
                    if (checkBoxs[i].type == 'checkbox')
                        checkBoxs[i].checked = ele.checked;
                }
            }
            var parentDiv = event.srcElement.parentElement.parentElement.parentElement.parentElement.parentElement;
            var parentParentDiv = event.srcElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement;
            var parentParentParentDiv = event.srcElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement;
            if (parentDiv != null && parentDiv != undefined) {
                var parentCheckBoxID = parentDiv.id.replace('Nodes', 'CheckBox');
                var checkBoxs = parentDiv.getElementsByTagName('INPUT');
                var childNodeChecked = false;
                for (var i = 0; i < checkBoxs.length; i++) {
                    if (checkBoxs[i].type == 'checkbox' && checkBoxs[i].checked)
                        childNodeChecked = true;
                }
                if (document.getElementById(parentCheckBoxID) != null) {
                    document.getElementById(parentCheckBoxID).checked = childNodeChecked;
                }
            }
            if (parentParentDiv != null && parentParentDiv != undefined) {
                var parentParentCheckBoxID = parentParentDiv.id.replace('Nodes', 'CheckBox');
                var checkBoxs = parentParentDiv.getElementsByTagName('INPUT');
                var childNodeChecked = false;
                for (var i = 0; i < checkBoxs.length; i++) {
                    if (checkBoxs[i].type == 'checkbox' && checkBoxs[i].checked)
                        childNodeChecked = true;
                }

                if (document.getElementById(parentParentCheckBoxID) != null) {
                    document.getElementById(parentParentCheckBoxID).checked = childNodeChecked;
                }
            }

            if (parentParentParentDiv != null && parentParentParentDiv != undefined) {
                var parentParentParentCheckBoxID = parentParentParentDiv.id.replace('Nodes', 'CheckBox');
                var checkBoxs = parentParentParentDiv.getElementsByTagName('INPUT');
                var childNodeChecked = false;
                for (var i = 0; i < checkBoxs.length; i++) {
                    if (checkBoxs[i].type == 'checkbox' && checkBoxs[i].checked)
                        childNodeChecked = true;
                }

                if (document.getElementById(parentParentParentCheckBoxID) != null) {
                    document.getElementById(parentParentParentCheckBoxID).checked = childNodeChecked;
                }
            }
        }
    }
  

</script>

 

//下面這個是實現(xiàn)父親選擇子也選擇

<script language='javascript' type='text/javascript'>
        
function OnTreeNodeChecked() {
            
var ele = event.srcElement;
            
if (ele.type == 'checkbox') {
                
var childrenDivID = ele.id.replace('CheckBox''Nodes');
                
var div = document.getElementById(childrenDivID);
                
if (div == nullreturn;
                
var checkBoxs = div.getElementsByTagName('INPUT');
                
for (var i = 0; i < checkBoxs.length; i++) {
                    
if (checkBoxs[i].type == 'checkbox')
                        checkBoxs[i].checked 
= ele.checked;
                }
            }
        }
</script>

//使用方法和上面一樣

 

//下面這個也是實現(xiàn)自選父選

‍ <script type="text/javascript">
        function client_OnTreeNodeChecked(evt) {
            var EVENT = evt || window.event;    ////考慮ie和ff兼容問題
            var srcElement = EVENT.srcElement || EVENT.target; //考慮ie和ff兼容問題


            //var obj = window.event.srcElement;
            var obj = srcElement;    //for ie/ff 兼容

            var treeNodeFound = false;
            var checkedState;
            if (obj.tagName == "INPUT" && obj.type == "checkbox") {
                var treeNode = obj;
                checkedState = treeNode.checked;
                do {
                    //obj = obj.parentElement;
                    obj = obj.parentNode;    //處理ie和ff兼容問題.考慮到obj.parentNode似乎ie6和ff都支持,就直接用這個了
                } while (obj.tagName != "TABLE")
                var parentTreeLevel = obj.rows[0].cells.length;
                var parentTreeNode = obj.rows[0].cells[0];
                //var tables = obj.parentElement.getElementsByTagName("TABLE");
                var tables = obj.parentNode.getElementsByTagName("TABLE");
                var numTables = tables.length
                if (numTables >= 1) {
                    for (i = 0; i < numTables; i++) {
                        if (tables[i] == obj) {
                            treeNodeFound = true; i++;
                            if (i == numTables) {
                                return;
                            }
                        }
                        if (treeNodeFound == true) {
                            var childTreeLevel = tables[i].rows[0].cells.length;
                            if (childTreeLevel > parentTreeLevel) {
                                var cell = tables[i].rows[0].cells[childTreeLevel - 1];
                                var inputs = cell.getElementsByTagName("INPUT");
                                if (inputs[0])          //加上此判斷用于處理子節(jié)點有些節(jié)點有checkbox,有些沒有的情況。
                                {
                                    inputs[0].checked = checkedState;
                                }
                            }
                            else {
                                return;
                            }
                        }
                    }
                }
            }
        }
</script>

//使用方法如下

‍   <asp:TreeView ID="Tree_Target" runat="server" ShowLines="True" ShowCheckBoxes="All"
                                             onclick="client_OnTreeNodeChecked(event);">
                                        </asp:TreeView>

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多