asp.net 动态treeview

js code //主要功能是实现复选框的全选择跟非全选

<script type="text/javascript" defer="defer">
        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) {
                    var checkBoxs = div.getElementsByTagName('INPUT');
                    for (var i = 0; i < checkBoxs.length; i++) {
                        if (checkBoxs[i].type == 'checkbox')
                            checkBoxs[i].checked = ele.checked;
                    }
                }
                OnTreeNodeChildChecked(ele);
            }
        }

        function OnTreeNodeChildChecked(ele) {
            //递归处理
            var parentDiv = ele.parentElement.parentElement.parentElement.parentElement.parentElement;
            var parentChkBox = null;
            try {
                parentChkBox = document.getElementById(parentDiv.id.replace('Nodes', 'CheckBox'));
            }
            catch (error) { ; }
            if (parentChkBox != null) {
                var ChildsChkAll = true;
                var Boxs = parentDiv.getElementsByTagName('INPUT');
                for (var i = 0; i < Boxs.length; i++) {
                    if (Boxs[i].type == 'checkbox' && Boxs[i].checked == false) {
                        ChildsChkAll = false;
                    }
                }
                parentChkBox.checked = ChildsChkAll;
                OnTreeNodeChildChecked(parentChkBox);
            }
        }
    </script>

 

html code

<asp:TreeView ID="tvData" runat="server" OnClick="OnTreeNodeChecked();" ShowLines="True">
        </asp:TreeView>

 

C# code

/// <summary>
        /// 初始化树
        /// </summary>
        private void InitTreeview()
        {
            this.tvData.Nodes.Clear();
            TreeNode tn = new TreeNode();
            string id = "0";
            tn.Text = "测试1";
            tn.Value = id;
            tn.NavigateUrl = "#";//tn.NavigateUrl = "";等于#不触发事件,等于"",可以触发像SelectedNodeChanged事件
            tvData.Nodes.Add(tn);
            addTreeNode(tn, dt);
        }
        //递归初始树
        private void addTreeNode(TreeNode tnParent, DataTable dtTreeNode)
        {
            for (int i = 0; i < dtTreeNode.Rows.Count; i++)
            {
                TreeNode tn = new TreeNode();
                string id = dtTreeNode.Rows[i]["Id"].ToString();
                tn.Text = dtTreeNode.Rows[i]["Name"].ToString();//如果需要添加JS事件,可以通过TEXT值来实现,如:tn.text="<span οnclick='close();'>name</span>"
                tn.Value = id;
                tn.NavigateUrl = "";
                //tn.ShowCheckBox = true;
                tn.NavigateUrl = "#";//tn.NavigateUrl = "";等于#不触发事件,等于"",可以触发像SelectedNodeChanged事件
                tnParent.ChildNodes.Add(tn);
                addTreeNode(tn, dt);
            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值