EasyUI实现表格分页

迷南。 2022-05-18 23:14 469阅读 0赞

1.官网下载EasyUI地址:http://www.jeasyui.com/download/list.php

(我的资源地址:https://download.csdn.net/download/rexueqingchun/10547000)

2.页面使用及添加所依赖的JS和CSS

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>EasyUI</title>
  5. <script src="/script/jquery.1.12.4.min.js"></script>
  6. <script src="/script/My97DatePicker/WdatePicker.js"></script>
  7. <script src="/script/jquery-easyui-1.5.5/jquery.easyui.min.js" ></script>
  8. <script src="/script/jquery-easyui-1.5.5/locale/easyui-lang-zh_CN.js" ></script>
  9. <link rel="stylesheet" href="/script/jquery-easyui-1.5.5/themes/default/easyui.css" type="text/css">
  10. <script type="text/javascript">
  11. $(function(){
  12. $('#mytab').datagrid({
  13. method: 'post',
  14. iconCls: 'icon-edit', //图标
  15. singleSelect: false, //多选
  16. height: 310, //高度
  17. width: 1024, //高度
  18. fitColumns: true, //自动调整各列,用了这个属性,下面各列的宽度值就只是一个比例。
  19. striped: true, //奇偶行颜色不同
  20. collapsible: true,//可折叠
  21. url: "jkrzList", //数据来源
  22. remoteSort: true, //服务器端排序
  23. pagination: true, //显示分页
  24. rownumbers: true, //显示行号
  25. columns: [
  26. [
  27. {
  28. field: 'SERVER_IP',
  29. title: '字段1',
  30. width: 10,
  31. formatter: function (value, row, index) {
  32. return row.SERVER_IP;
  33. }
  34. },
  35. {
  36. field: 'SERVER_NAME',
  37. title: '字段2',
  38. width: 10,
  39. formatter: function (value, row, index) {
  40. return row.SERVER_NAME;
  41. }
  42. },
  43. {
  44. field: 'LRSJ',
  45. title: '录入时间',
  46. width: 10,
  47. formatter: function (value, row, index) {
  48. return row.LRSJ;
  49. }
  50. }
  51. ]
  52. ],
  53. onLoadSuccess: function () {
  54. //一定要加上这一句,要不然datagrid会记住之前的选择状态,删除时会出问题
  55. $('#mytab').datagrid('clearSelections');
  56. }
  57. });
  58. });
  59. //查询
  60. function searchInfo() {
  61. var params = $('#mytab').datagrid('options').queryParams; //先取得 datagrid 的查询参数
  62. var fields = $('#form').serializeArray(); //自动序列化表单元素为JSON对象
  63. $.each(fields, function (i, field) {
  64. params[field.name] = field.value; //设置查询参数
  65. });
  66. $('#mytab').datagrid('reload'); //设置好查询参数 reload 一下就可以了
  67. }
  68. </script>
  69. </head>
  70. <body>
  71. <div>
  72. <form id="form" style="margin:20px;text-align: center;">
  73. <table>
  74. <tr>
  75. <td width="20%">开始日期</td>
  76. <td width="20%"><input id="ksrq" name="ksrq" onFocus="WdatePicker({dateFmt: 'yyyy-MM-dd HH:mm:ss',maxDate:'%y-%M-%d %H:%m:%s'});" ></td>
  77. <td width="20%">结束日期</td>
  78. <td width="20%"><input id="jsrq" name="jsrq" onFocus="WdatePicker({dateFmt: 'yyyy-MM-dd HH:mm:ss',maxDate:'%y-%M-%d %H:%m:%s'});" ></td>
  79. <td width="20%"><input type="button" value="查询" onclick="searchInfo()"></td>
  80. </tr>
  81. </table>
  82. </form>
  83. </div>
  84. <table id="mytab"></table>
  85. </body>
  86. </html>

3.后台返回数据

  1. @RequestMapping(value = "jkrzList", method = {RequestMethod.GET, RequestMethod.POST })
  2. @ResponseBody
  3. public Map<String, Object> jkrzList(HttpServletRequest request) {
  4. Map<String, Object> result = new HashMap<String, Object>();
  5. Integer page = Integer.parseInt(request.getParameter("page"));//easyUI默认传当前页码,固定参数为page
  6. Integer rows = Integer.parseInt(request.getParameter("rows"));//easyUI默认传每页数据量,固定参数为rows
  7. //以下为oracle原生分页sql,可根据自己框架调整查询方式
  8. int startNumber = (page-1) * rows + 1;
  9. int endNumber = page * rows;
  10. String sql = "select * from (select a.*, rownum rn from ( "
  11. + "select * from t_sys_jkrz order by lrsj desc ) a "
  12. + "where rownum <= "+endNumber+") where rn >="+startNumber;
  13. Map paramMap = new HashMap();
  14. paramMap.put("sql", sql);
  15. List<Map<String, Object>> list = jkconfigDao.selectPage(paramMap);
  16. //查询总条数
  17. sql = "select count(1) from t_sys_jkrz";
  18. paramMap.put("sql", sql);
  19. Integer count = (Integer) jkconfigDao.queryCount(paramMap);
  20. result.put("total", count);
  21. result.put("rows", list);
  22. return result;
  23. }

注意:若使用thymeleaf渲染html页面的话,datagrid的columns应为上述写法,两个 [[ 之间换行,否则会解析错误

发表评论

表情:
评论列表 (有 0 条评论,469人围观)

还没有评论,来说两句吧...

相关阅读