ZtreeAsyncMasterFile(zTree大数据量分批次异步加载)


ZtreeAsyncMasterFile(zTree大数据量分批次异步加载)

关于后台数据存储将集中在最后一篇讲解,此处省略

<%@ Page Language="C#" MasterPageFile="~/pages/master/WebList.Master" AutoEventWireup="true"
    CodeBehind="ZtreeAsyncMasterFile.aspx.cs" Inherits="BF.Web.pages.MedicalTreatmentCombination.ZtreeAsyncMasterFile" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceJs" runat="server">
    <link href="zTree-zTree_v3-master/zTree_v3/css/demo.css" rel="stylesheet" type="text/css" />
    <link href="zTree-zTree_v3-master/zTree_v3/css/zTreeStyle/zTreeStyle.css" rel="stylesheet"
        type="text/css" />
    <script src="zTree-zTree_v3-master/zTree_v3/js/jquery-1.4.4.min.js" type="text/javascript"></script>
    <script src="zTree-zTree_v3-master/zTree_v3/js/jquery.ztree.core-3.5.js" type="text/javascript"></script>
    <script src="zTree-zTree_v3-master/zTree_v3/js/jquery.ztree.excheck-3.5.js" type="text/javascript"></script>
    <script type="text/javascript">
        var iconOpen = "zTree-zTree_v3-master/zTree_v3/css/zTreeStyle/img/diy/1_open.png"; //默认 加载图标
        var icon = "zTree-zTree_v3-master/zTree_v3/css/zTreeStyle/img/loading.gif"; //ajax 加载图标

        var setting = {
            isSimpleData: true, //数据是否采用简单 Array 格式,默认false
            treeNodeKey: "gID", //在isSimpleData格式下,当前节点id属性
            treeNodeParentKey: "gPID", //在isSimpleData格式下,当前节点的父节点id属性
            showLine: true, //是否显示节点间的连线
            expandSpeed: "fast",
            isParent: "isParent",
            icon: {
                iconOpen: decodeURI("iconOpen"),
                iconClose: decodeURI("iconClose")//自定义图标 展开 伸缩不同【仅支持父节点】
            },
            check: {
                enable: true //开启checkbox
            },
            callback: {
                onCheck: onCheck, //节点勾选
                onClick: onClick, //节点单击
                beforeExpand: beforeExpand, //节点展开前
                onExpand: onExpand
            }
        }


        function onCheck(e, treeId, treeNode) {
            var treeObj = $.fn.zTree.getZTreeObj("treeDemo"),
                    nodes = treeObj.getCheckedNodes(true),
                    v = "";
            for (var i = 0; i < nodes.length; i++) {
                v += nodes[i].name + ",";
            }
        }

        function beforeExpand(treeId, treeNode) {//节点展开前
            var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
            var newNodes;

            //debugger;
            var treeULDemo = $("[id='" + treeNode.tId + "_a']").next();
            if (treeULDemo != null && treeULDemo != undefined && treeULDemo.length > 0) {
                treeObj.updateNode(treeNode);
                treeObj.reAsyncChildNodes(treeNode, "refresh");
            } else {
                startTime = new Date();
                $.ajax({
                    async: false, //【重要】:设置false不然出不来数据
                    type: "post", //要用post方式                 
                    url: "ZtreeForm.aspx/GetRootByChildsID", //方法所在页面和方法名
                    contentType: "application/json; charset=utf-8",
                    data: '{ gid:"' + treeNode.gID + '"}',
                    dataType: "json",
                    success: function (data) { //请求成功后处理函数。
                        var _data = $.parseJSON(data.d);
                        newNodes = _data; //把后台封装好的简单Json格式赋给treeNodes
                    },
                    error: function () {//请求失败处理函数
                        alert('请求失败');
                    },
                    beforeSend: function () {
                        $("#" + treeNode.tId + "_a").children("#" + treeNode.tId + "_ico").css("background-image", "url('" + icon + "')"); //jquery子代选择器 【暂用】
                        //$("#" + treeNode.tId + "_ico").css("background-image", "url('" + icon + "')");//jquery ID选择器 【暂不用】
                    },
                    complete: function () {
                        treeNode.iconOpen = iconOpen;
                    }
                });
                newNodes = treeObj.addNodes(treeNode, newNodes, true); //展开父节点
                treeObj.updateNode(treeNode);

                endTime = new Date();
                var usedTime = (endTime.getTime() - startTime.getTime()) / 1000;
                showLog("加载完毕,异步加载, 耗时:" + usedTime + " 秒");
            }
        }

        function onExpand(event, treeId, treeNode) {//节点展开
            var zTree = $.fn.zTree.getZTreeObj("treeDemo"); //加载指定节点
            zTree.selectNode(treeNode.children[0]);
        }

        function onClick(e, treeId, treeNode) {
            if (treeNode.gID.toUpperCase() == '07D42700-6201-47A7-9E7F-B7D6704CD12E' || treeNode.gID.toUpperCase() == 'CA0692EB-44F9-4566-B76E-18E23E7D2E2B')//国家总局 青海省民政厅 不可选
                return false;
            var zTree = $.fn.zTree.getZTreeObj("treeDemo");
            zTree.expandNode(treeNode, null, null, null, true);
        }

        function zTreeOnDblclick(e, treeId, treeNode) {
            alert("gID:" + treeNode.gID + " gPID:" + treeNode.gPID + " name:" + treeNode.name);
        }


        function getTime() {
            var now = new Date(),
            h = now.getHours(),
            m = now.getMinutes(),
            s = now.getSeconds(),
            ms = now.getMilliseconds();
            return (h + ":" + m + ":" + s + " " + ms);
        }

        function showLog(str) {
            var log = $("#log");
            log.append("<li>" + str + "</li>");
        }

        var startTime = 0, endTime = 0;

        var treeNodes;
        $(function () {
            $.ajax({
                async: false, //【重要】:设置false不然出不来数据
                type: "post", //要用post方式                 
                url: "ZtreeForm.aspx/GetZtreeRootList", //方法所在页面和方法名
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) { //请求成功后处理函数。
                    var _data = $.parseJSON(data.d);
                    treeNodes = _data; //把后台封装好的简单Json格式赋给treeNodes
                },
                error: function () {//请求失败处理函数
                    alert('请求失败');
                }
            });

            //debugger;
            $.fn.zTree.init($("#treeDemo"), setting, treeNodes); //自动展开所有节点
            var zTree = $.fn.zTree.getZTreeObj("treeDemo"); //加载指定节点
            var node = zTree.getNodeByParam('name', '青海省民政厅', null);
            if (node != null) {
                zTree.selectNode(node);
                zTree.expandNode(node, true, false); //只展开当前节点下的一级节点
            }
        });
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHtml" runat="server">
    <div class="content_wrap">
        <div class="zTreeDemoBackground left">
            <ul id="treeDemo" class="ztree">
            </ul>
            <ul id="log" class="log" style="height: 185px">
            </ul>
        </div>
    </div>
</asp:Content>

【ZtreeAsyncMasterFile(zTree大数据量分批次异步加载)】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值