• ztree使用心得


    一个很好用的Jquery树形控件

    官网:http://www.ztree.me/v3/main.php#_zTreeInfo

    我主要引用的文件为:

    //最新版的JS压缩包
     <script src="../Script/jquery-1.11.1.min.js" type="text/javascript"></script> 
    //Ztree样式
     <link href="../CSS/zTreeStyle.css" rel="stylesheet" type="text/css" />
     <script src="../Script/jquery.ztree.core-3.5.js" type="text/javascript"></script>
     <script src="../Script/jquery.ztree.excheck-3.5.js" type="text/javascript"></script>
    View Code

    根据项目需要主setting设置如下:

     var setting1 = {
                check: {
                    enable: true,
                    chkboxType: { "Y": "ps", "N": "ps" }
                },
                data: {
                    simpleData: {
                        enable: true
    
                    }
                }
    
            };  
    
    var setting = {
                check: {
                    enable: true,
                    chkboxType: { "Y": "ps", "N": "ps" }
                },
                async: {
                    enable: true, // 设置 zTree是否开启异步加载模式  加载全部信息
                    url: "", // Ajax 获取数据的 URL 地址  
                    autoParam: ["id"]    // 异步加载时自动提交父节点属性的参数,假设父节点 node = {id:1, name:"test"},异步加载时,提交参数 zId=1   
                },
                data: { // 必须使用data  
                    simpleData: {
                        enable: true,
                        idKey: "id", // id编号命名 默认  
                        pIdKey: "pId", // 父id编号命名 默认   
                        rootPId: 0 // 用于修正根节点父节点数据,即 pIdKey 指定的属性值  
                    }
                },
                // 回调函数  
                callback: {
                    //捕获异步加载出现异常错误的事件回调函数 和 成功的回调函数  
                    onAsyncError: zTreeOnAsyncError,
                    onAsyncSuccess: function (event, treeId, treeNode, msg) {
                        var name = $("#<%=hdfValue.ClientID%>").val();
    
                        if (name != undefined && name != "") {
                            //默认选中
                            $.ajax({
                                //设置同步
                                type: "POST",
                                async: false,
                                url: '',
                                data: { type: '', name: name },
                                dataType: 'json',
    
                                success: function (data) {
                                    //对于获取的数据执行相关的操作,如:绑定、显示等
                                    var treeObj = $.fn.zTree.getZTreeObj('Tree1');
                                  
                                    for (var i = 0; i < data.length; i++) {
                                        var node = treeObj.getNodeByParam("id", data[i].id, null);
                                        treeObj.checkNode(node);
                                    }
                                }
                            });
    
                       
                            //学校信息
                            $.ajax({
                                type: "POST",
                                async: false,//同步
                                url: 'CategoryHandler.ashx',
                                data: { type: 'search', name: name },
                                dataType: 'json',
    
                                success: function (data) {
                                    //对于获取的数据执行相关的操作,如:绑定、显示等
                                    //专业信息;eval将字符串转换为JSON串/
                                    //可以使用http://www.bejson.com/ 检查是否自己的Json串正确与否
                                    $.fn.zTree.init($("#Tree2"), setting1, eval(data[0].Specialty));
                                }
                            });
                        }
    
                    },
                    onRename: zTreeOnRename
                }
            };
    
      // 加载错误提示  
            function zTreeOnAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
                alert("加载错误:" + XMLHttpRequest);
            };
    
            function beforeRemove(e, treeId, treeNode) {
                return confirm("你确定要删除吗?");
            }
            function onRemove(e, treeId, treeNode) {
                if (treeNode.isParent) {
                    var childNodes = zTree.removeChildNodes(treeNode);
                    var paramsArray = new Array();
                    for (var i = 0; i < childNodes.length; i++) {
                        paramsArray.push(childNodes[i].id);
                    }
                    alert("删除父节点的id为:" + treeNode.id + "
    他的孩子节点有:" + paramsArray.join(","));
                    return;
                }
                alert("你点击要删除的节点的名称为:" + treeNode.name + "
    " + "节点id为:" + treeNode.id);
            }
    
    
            function zTreeOnRename(event, treeId, treeNode, isCancel) {
                //可以自定义属性,然后根据这些属性来完成操作
                alert(treeNode.id + ",重命名过后的回调函数 " + treeNode.name);
    
                //1.ajax更新数据库
            }
    
           //必备的在ztree加载方法
          $(document).ready(function () {
                $.fn.zTree.init($("#Tree1"), setting);
                $.fn.zTree.init($("#Tree2"), setting1);
                     });
    
    //将在ztree1中选中的信息填到ztree2
     function OnclickRight() {
                var treeObj = $.fn.zTree.getZTreeObj('Tree1');
                var nodes = treeObj.getCheckedNodes(true);
                var checkedValues = '';
                var a = [];
                for (var i = 0; i < nodes.length; i++) {
                    var obj = {};
                    obj.id = nodes[i].id;
                    obj.pId = nodes[i].pId;
                    obj.name = nodes[i].name;
                    a.push(obj);
                }
                if (a.length > 0) {
                    $.fn.zTree.init($("#Tree2"), setting1, a);
                }
            }
    
      //清除选中的tree2节点
            function OnclickLeft() {
                var treeObj = $.fn.zTree.getZTreeObj("Tree2");
                var nodes = treeObj.getCheckedNodes(true);
    
                for (var i = 0, l = nodes.length; i < l; i++) {
                    if (nodes[i].check_Child_State == 2) {
                        treeObj.removeNode(nodes[i]);
                    } else if (nodes[i].check_Child_State == -1 && !(nodes[i].isParent)) {
                        treeObj.removeNode(nodes[i]);
                    } else {
                        treeObj.checkNode(nodes[i], false, false);
                    }
                }
            }
    View Code

    附带这个页面的其他几个问题:

    <asp:DropDownList ID="ddlB" runat="server"> </asp:DropDownList>

    获取此下拉框数据:   YJSEnglish = $("#ContentPlaceHolder1_ddlB").find("option:selected").val();

     <asp:CheckBoxList ID="cblCategory" runat="server" RepeatDirection="Horizontal"> </asp:CheckBoxList>

    获取多选框数据:

     $("[id*=cblCategory] input:checked").each(function () {

                    Values += $(this).val() + ",";

                });

    因为我传递到后台的数据有中文信息,所以我的Ajax如下:

     var obj = {};

    obj结构如下

    //组织ID
    obj.OrgId = OrgId;

     $.ajax({
                    url: "Ajaxahsx/CategoryHandler.ashx?action=Save",
                    data: obj,
                    type: 'POST',
                    dataType: "json",
                    contentType: "application/x-www-form-urlencoded; charset=UTF-8",
                    success: function (data) {
                        alert("成功");
                        window.location.href = 'SearchIndex.aspx';
                    },
                    error: function (data) {
                        alert("程序出错");
                    }
                })
            }
    View Code
  • 相关阅读:
    Python 选择排序
    ORACLE和MYSQL的简单区别
    测试基础
    mongoDB新增数据库
    支付-测试点
    安装 selenium 对于python而言属于一个第三方的模块
    使用Fiddler抓包抓取不了数据包的问题
    软件测试技术之可用性测试之WhatsApp Web
    集成腾讯Bugly日志- Android(1)
    C++中的各种可调用对象
  • 原文地址:https://www.cnblogs.com/Jack_G/p/3922612.html
Copyright © 2020-2023  润新知