• EasyUi 分页 和 表格数据加载


    这里说明的是将说有数据先返回到前端再由前端去分页,性能可能没有先在后台分好页再返回给前端高

    但如果操作不涉及大数据的话也没什么大问题,具体问题具体分析

    要使用分页控件首先要声明初始化一下:

    1      //设置分页控件 
    2      var p = $("#tt").datagrid('getPager'); //tt为表格id
    3      $(p).pagination({ 
    4        // pageSize: 10,//每页显示的记录条数,默认为10 
    5        pageList: [5,10,15],//可以设置每页记录条数的列表 
    6        beforePageText: '第',//页数文本框前显示的汉字 
    7        afterPageText: '页    共 {pages} 页', 
    8        displayMsg: '当前显示 {from} - {to} 条记录   共 {total} 条记录', 
    9      });      

    然后是前端的分页代码(网上的):

     1 function pagerFilter(data){
     2             if (typeof data.length == 'number' && typeof data.splice == 'function'){    // is array
     3                 data = {
     4                     total: data.length,
     5                     rows: data
     6                 }
     7             }
     8             var dg = $(this);
     9             var opts = dg.datagrid('options');
    10             var pager = dg.datagrid('getPager');
    11             pager.pagination({
    12                 //pageSize: 10,//每页显示的记录条数,默认为10                  //这里不设置的画分页页数选择函数会正确调用,否则每次点击下一页
    13                 pageList: [5,10,15],//可以设置每页记录条数的列表              //pageSize都会变回设置的值
    14                 beforePageText: '第',//页数文本框前显示的汉字 
    15                 afterPageText: '页    共 {pages} 页', 
    16                 displayMsg: '当前显示 {from} - {to} 条记录   共 {total} 条记录', 
    17                 onChangePageSize:function(){
    18                  },
    19                 onSelectPage:function(pageNum, pageSize){
    20                     opts.pageNumber = pageNum;
    21                     opts.pageSize = pageSize;
    22                     pager.pagination('refresh',{
    23                         pageNumber:pageNum,
    24                         pageSize:pageSize
    25                     });
    26                     dg.datagrid('loadData',data);
    27                 }
    28             });
    29             if (!data.originalRows){
    30                 data.originalRows = (data.rows);
    31             }
    32             var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
    33             var end = start + parseInt(opts.pageSize);
    34             data.rows = (data.originalRows.slice(start, end));
    35             return data;
    36         }
     1 function doSearch(){
     2         userName = $("#itemid").val();
     3         roleName = $("#roleName").val();
     4         var urlRequest="/account/searchByUserName?userName="+userName+"&roleName=" + roleName;  //相对路径请求
     5         $.getJSON(urlRequest, null, function(json) {                        //get方法获取json数据,java代码之前写过一篇了
     6         /* $(function(){ 
     7         ccb={total:json.length,rows:[json[0]]};
     8         $("#tt").datagrid('loadData', ccb); 
     9         alert('here');
    10         });  */
    11         ccb = {                                                 //Json数据继续封装
    12               "total": json.length,
    13               "rows": json
    14         };
    15         $(function(){
    16             $('#tt').datagrid({loadFilter:pagerFilter}).datagrid('loadData', ccb);
    17         });
    18         /*  $("#tt").datagrid('loadData', {                                 //加载数据类似上面的
    19         "total": json.length,
    20          "rows": json
    21          }); */
    22    });
    23         }

    Html代码顺便粘一下:

     1 <body>
     2     <div class="demo-info" style="margin-bottom:10px">
     3         <div class="demo-tip icon-tip">&nbsp;</div>
     4         <div>输入查询关键字,点击查询搜索</div>
     5     </div>
     6     
     7     <table id="tt" class="easyui-datagrid" style="1130px;height:540px"
     8             title="Searching" iconCls="icon-search" toolbar="#tb"
     9             rownumbers="true" pagination="true">
    10         <thead>
    11             <tr>
    12                 <th field="userName" width="150">用户名</th>
    13                 <th field="roleName" width="150">角色名</th>
    14                 <th field="telphone" width=150" >电话</th>
    15                 <th field="email" width="150" >邮件</th>
    16                 <th field="sex" width="50">性别</th>
    17                 <th field="createtime" width="160" align="center">账户创建时间</th>
    18             </tr>
    19         </thead>
    20     </table>
    21     <div id="tb" style="padding:3px">
    22         <span>用户名:</span>
    23         <input id="itemid" style="line-height:26px;border:1px solid #ccc" onkeydown='if(event.keyCode==13){doSearch();}'>
    24         <span>角色名:</span>
    25         <select id="roleName"  style="line-height:26px;border:1px solid #ccc" onchange="doSelect();">
    26             <option value="all" >所有角色</option>
    27             <option value="超级管理员">超级管理员</option>
    28             <option value="管理员">管理员</option>
    29         </select>
    30         <a href="#" class="easyui-linkbutton" plain="true" onclick="doSearch()">查询</a>
    31     </div>
    32 </body>
  • 相关阅读:
    一台Ubuntu server上安装多实例MySQL
    用VirtualBox构建MySQL测试环境笔记
    Mac点滴
    MySQL复制(三) --- 高可用性和复制
    Linux性能监控的几个工具(转)
    前端读者 | Javascript设计模式理论与实战:状态模式
    前端读者 | 为什么页面跟设计稿差距这么大?是啊!为毛啊?
    前端读者 | 由setTimeout引发的JS引擎运行机制的研究
    前端读者 | Web App开发入门
    前端读者 | 从一行代码里面学点JavaScript
  • 原文地址:https://www.cnblogs.com/george-cw/p/4231236.html
Copyright © 2020-2023  润新知