• Jquery EasyUI Treegrid按需加载子集


    项目说明,要一个有权限并且按需加载的树形列表.

     jeasyui网址

    CSS

    <!--添加树状控件-->
        <link rel="stylesheet" type="text/css" href="../js/GridTree/themes/default/easyui.css">
        <link rel="stylesheet" type="text/css" href="../js/GridTree/themes/default/serviceTesting1.css">

    HTML

    <div id="tableMain">              
          <table class="easyui-treegrid" id="funTreeList" style=" 100% !important;"></table>                            
    </div>

    JS

    <!--treeGrid树状插件-->
    <script type="text/javascript" src="../js/GridTree/jquery.easyui.min.js"></script>   //找到自己的文件目录

    <script>
      
    function GetModuleTree(){
        $.ajax({
            type: "get",
            url: durl+"ServicePrice/GetSystemModulePriceTree",
            data: {},
            cache: false,
            success: function (d) {
            var data = d.data;
            $('#funTreeList').treegrid({
                fit: true,
                toolbar: '#toolbar',
                striped: true,
                rownumbers: false,                 //设置为true,则显示带有行号的列
                lines:true,                        //是否出现线条
                fitColumns:true,                //设置为true,则会自动扩大或缩小列的尺寸以适应网格的宽度并且防止水平滚动。
                data: data,                      //加载的数据 (此数据为父级和子集的全部数据)
                idField:'ModuleID',             //指示那个字段是标识字段
                treeField:'ModuleName',         //定义树节点的字段
                loadFilter: myLoadFilter,       //最主要的方法  过滤数据
                onLoadSuccess: function (row)        {
              $('#funTreeList').treegrid('collapseAll') obj.q(); //权限 closeload(); }, columns:[[ {field:'ModuleName',title:'功能名称',200}, {field:'ModuleSort',title:'功能序号',40}, {field:'ModuleID',title:'功能ID',40}, {field:'ModuleIndustry',title:'适用行业',60}, {field:'ModuleRemark',title:'功能简介',100,formatter:ModuleRemark}, {field:'IsMenu',title:'首页菜单',align:'center', 40,formatter:IsMenu}, {field:'priceType',title:'定价点',align:'center', 150,formatter:priceType}, {field:'btns',title:'操作',align:'center',270,formatter:formatOper} ]]    }); }, error: function (a, b, c) { closeload(); alert("请求服务器出现错误"); } }); }
    //按需加载子节点
    function myLoadFilter(data,parentId){
        function setData(data){//重新整理数据的children属性
            var todo = [];
            for(var i=0; i<data.length; i++){
                todo.push(data[i]);//数组末端添加 将源数据添加到数组中便于后续利用
            }
            
            while(todo.length){
                var node = todo.shift();//方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
                if (node.children){//如果有子节点
                    node.state = 'closed';
                    node.children1 = node.children;
                    node.children = undefined;
                    todo = todo.concat(node.children1);//数组联结
           }
            }
        }
        setData(data);
        var tg = $(this);//当前页面
        var opts = tg.treegrid('options');//获取属性表格的属性对象
        //节点展开前执行的方法  row是行数据
      opts.onBeforeExpand = function(row){
            if (row.children1){
                tg.treegrid('append',{
                    parent: row[opts.idField],//父节点id
                    data: row.children1//节点数据
                });
                row.children1 = undefined;
            }
            obj.q(); //权限
            return row.children1 == undefined;
        };
        return data;
    }

    </script>
  • 相关阅读:
    【MVC整理】1.使用 StructureMap 作为 ASP.NET MVC 的 DI 框架
    一个随机列表项算法
    轻量级IOC框架:Ninject
    解决“找不到请求的 .Net Framework 数据提供程序。可能没有安装”的问题
    Vcastr 2.2 flv 网络播放器 参数设置
    C#取汉字首字母
    IIS Express的安装与设置讲解
    清晰的图片缩略方案
    ssh远程连接ubuntu
    【Apache】在Apache中利用ServerAlias设置虚拟主机接收多个域名和设置域名泛解析
  • 原文地址:https://www.cnblogs.com/wei-dong/p/9089469.html
Copyright © 2020-2023  润新知