zoukankan      html  css  js  c++  java
  • zTree应用

    aspx:<ul id="productTree"></ul> 


    js: 
    var productTreeInfo = { 
        tree: null, 
        setting: null, 
        nodes: null, 
        treeId: "productTree", 
        nodeId: "", 
        nodeName: "", 
        nodeLevel: 0 
    }; 

    jQuery(function ($) { 
        initTree(); 
    }); 


    //强制刷新树菜单 
    var refresh = "no"; 
    function refreshTree() { 
        //判断权限 
        if (!confirm("是否要继续刷新树菜单?该动作将会同步远程文件服务器!")) { 
            return; 
        } 
        refresh = "yes";    
        initTree();    

    //获取知识库左侧文件夹树菜单 
    function initTree() { 
        progressDialog.showDialog("正在加载数据..."); 
        productTreeInfo.setting = { 
            checkable: false, 
            async: true, 
            expandSpeed: 0, 
            asyncUrl: "/tree/QueryProductTreeChildNode",  //获取知识库左侧文件夹树菜单节点数据的URL地址 
            asyncParam: ["id"],  //获取节点数据时,必须的数据名称,例如:id、name 
            asyncParamOther: ["pdu", pdu, "pduaddress", pduaddress,"selecttreeid",$("#DivSelectTreeid").val(),"refresh",refresh], //其它参数 ( key, value 键值对格式) 
            callback: { 
                click: zTreeOnClick, 
                beforeClick: zTreeOnBeforeClick, 
                rightClick: zTreeOnRightClick,  //点击右键方法 
                beforeDrop: zTreeBeforeDrop, 
                asyncSuccess: zTreeOnAsyncSuccess 
            } 
        }; 
        productTreeInfo.nodes = [{id: "0", name: "全部文件", open:false, isParent: true, checked: false,url:"",target:"mv"}]; 
        productTreeInfo.tree = $("#" + productTreeInfo.treeId).zTree(productTreeInfo.setting, productTreeInfo.nodes); 
        productTreeInfo.tree.expandNode(productTreeInfo.tree.getNodes()[0], true, false); //加载第一级产品线的节点 
    }

    //点击右键方法 
    function zTreeOnRightClick(event, treeId, treeNode) { 
        productTreeInfo.tree.selectNode(treeNode); 


    function zTreeOnBeforeClick(treeId, treeNode) { 
        if (treeNode.id=="0") { 
            if (!confirm("将服务器的全部文件显示出来,此操作的花费时间将依服务器文件数量而定!是否继续?")) { 

            } else { 
                $(document.getElementById("mainFrm")).attr("src", "../pub/FileListReport?treename=全部文件"); 
            } 
        } 

    function zTreeOnClick(event, treeId, treeNode) { 
        clickProductTree(treeId, treeNode); 


    function clickProductTree(treeId, treeNode) { 
        var nodeId = treeNode.id; 
        if (nodeId == productTreeInfo.nodeId) { return; } //点击相同的节点不作任何操作 


    function zTreeOnAsyncSuccess(event, treeId, msg) { 
        progressDialog.hideDialog(); 
        if (msg == "[]") { 
            treeNode.isParent = false; 
            productTreeInfo.tree = $("#" + productTreeInfo.treeId).zTree(productTreeInfo.setting, productTreeInfo.nodes); 

        } 
        //右键菜单 
        $("#productTree_1 span").RightMenu('myMenu2', { 
            menuList: [ 
                { menuName: "上传文件", menuclass: "1", clickEvent: "divClick(1)" }, 
                { menuName: "新建文件夹", menuclass: "2", clickEvent: "divClick(2)" }, 
    { menuName: "重命名", menuclass: "3", clickEvent: "divClick(3)" }, 
                { menuName: "删除", menuclass: "4", clickEvent: "divClick(4)" }, 
                { menuName: "导出文件夹", menuclass: "5", clickEvent: "divClick(5)" }, 
                { menuName: "管理者信息", menuclass: "6", clickEvent: "divClick(6)" }                                
                ] 
        }); 
        zTreeSelectNodeById(); 

        //新增、重命名文件夹返回展开选中状态 
        
        if ($("#DivSelectTreeid").val() != "") {        
            var treeNode = productTreeInfo.tree.getNodeByParam("id", $("#DivSelectTreeid").val());  
            productTreeInfo.tree.selectNode(treeNode); 
            productTreeInfo.tree.expandNode(treeNode, true, false); 
        } 
    }

    function divClick(s) { 
        var selecttreeid = productTreeInfo.tree.getSelectedNode().id; 
        var url = productTreeInfo.tree.getSelectedNode().url; 
        if (url!=undefined) { 
            var treepath = url.substring(url.lastIndexOf('=') + 1); 
        }    
        switch (s) { 
            case 1:            
                $('#mainFrm').attr('src', "/upload/FileUpload?" + url.substring(url.indexOf("?") + 1) + ""); 
            break; 
        case 2: 
            opencreatedialog(selecttreeid); 
            break; 
        case 3: 
            openrenamedialog(selecttreeid); 
            break; 
        case 4: 
            opendeletedialog(selecttreeid); 
            break; 
        case 5: 
            loadfolder(selecttreeid); 
            break; 
        case 6: 
            loadfoldermgrinfo(selecttreeid); 
            break; 
        case 7: 
            break; 
        default: 
            alert(selecttreeid); 
            break; 
        } 


    function zTreeSelectNodeById(selecttreeid) {    
        if (typeof (selecttreeid) != undefined) { 
            var nodes = productTreeInfo.tree.getNodes();//这里获得0,有问题        
            iteratorNode(nodes); 
        } 


    function iteratorNode(nodes) { 
        $.each(nodes, function (index, item) {        
            if (item.id == 111) {            
                productTreeInfo.tree.selectNode(item); 
                return false; 
            } 

            if (item.nodes != undefined) { 
                iteratorNode(item.nodes); 
            } 
        }); 

    //获取知识库左侧文件夹树菜单节点数据 TreeController.cs 
            public ContentResult QueryProductTreeChildNode(string id, string pdu, string pduaddress, string selecttreeid, string from, string refresh) 
            { 
                string cnt = "[]"; 

                try 
                { 
                    cnt = tree.BuildProductTreeChildNode(id, pdu, pduaddress, selecttreeid, from, refresh); 
                } 
                catch (System.Exception ex) 
                { 
                    LogUitls.error(ex); 
                } 

                return Content(cnt); 
            } 


    //ITreeRepository.cs 
    String BuildProductTreeChildNode(string id, string pdu, string pduaddress, string selecttreeid,string from,string refresh);

    //DfxRepository.cs 
    #region 获取类别树 
            public string BuildCategoryTreeChildNode(string id, string pduid, string pduaddress, string selecttreeid) 
            { 
                List<ProductTreeClass> nodeList = new List<ProductTreeClass>(); 
                List<Int32> expandidList = new List<Int32>(); 

                List<MANAGER_CFG_CATEGORY> allList = catedb.MANAGER_CFG_CATEGORY.ToList(); 

                nodeList = GetCategoryChildNodes(ref allList, ref nodeList, int.Parse(id), expandidList, pduid); 

                return JsonDataConverter.Serialize(nodeList.ToArray()); 
            } 

            public List<ProductTreeClass> GetCategoryChildNodes(ref List<MANAGER_CFG_CATEGORY> allList, ref List<ProductTreeClass> nodeList, int id, List<Int32> expandidList, string pduid) 
            { 
                List<MANAGER_CFG_CATEGORY> list = new List<MANAGER_CFG_CATEGORY>(); 

                List<ProductTreeClass> childList = new List<ProductTreeClass>(); 

                //list = allList.Where(x => x.ParentId == id && x.PduId == Convert.ToInt32(pduid)).OrderByDescending(x => x.CateOrder).OrderByDescending(x => x.Id).ToList(); 
                list = (from x in allList where x.ParentId == id && x.PduId == Convert.ToInt32(pduid) orderby x.CateOrder, x.Id select x).ToList();

                foreach (var item in list) 
                { 
                    ProductTreeClass node = new ProductTreeClass(); 
                    node.id = item.Id.ToString(); 
                    node.name = item.CateName; 
                    node.isParent = false; 
                    node.open = true; 
                    node.url = "../Menu/CategoryMenu?treeid=" + item.Id + "&treename=" + item.CateName + "&typename="+item.TypeName+""; 
                    node.target = "mv"; 
                    //判断是否有子节点 
                    if (allList.Where(x => x.ParentId == item.Id).Count() > 0) 
                    { 
                        node.isParent = true; 
                    } 

                    node.nodes = GetCategoryChildNodes(ref allList, ref childList, item.Id, expandidList, pduid); 

                    childList.Add(node); 
                } 

                return childList; 
            } 
            #endregion 


    public class ProductTreeClass 
        { 
            public string id {get; set;} 
            public string name {get; set;} 
            public string url {get; set;} 
            public bool isParent {get; set;} 
            public bool open {get; set;} 
            public List<ProductTreeClass> nodes {get; set;} 
            public string userData {get; set;} 
            public string target { get; set; } 
        }

  • 相关阅读:
    【题解】【bzoj1819】【JSOI】Word Query电子字典
    【笔记】好背的KMP
    【题解】【bzoj 1503】【NOI2004】郁闷的出纳员
    【题解】【bzoj 2809】【Apio2012】dispatching
    CSP2019游记
    Spring boot starter pom的依赖关系说明
    Mybatis的分页插件PageHelp:Page对象中的pageSize等属性无法序列化,无法转换为json字符串
    Java Util
    实现Quartz的动态增删改查
    1. Spring boot 之热部署
  • 原文地址:https://www.cnblogs.com/cw_volcano/p/2216523.html
Copyright © 2011-2022 走看看