Table 分页处理

  介绍两种table分页处理:PHP分页 和 js(jquery.table)分页。

  一:jquery.table:

  1:下载两个文件:table_jui.css 和 jquery.dataTables.min.js(当然前面的加载 jquery.js文件);将其拉入html 前面。

    table_jui.css  和   jquery.dataTables.min.js

  2:建表:

  

 1  <table style="width: 100%; margin-bottom:8px; " class="dataTables_wrapper table" id="tablemsg">
 2                 <thead style="font-size: 15px; font-weight: 800; background-color: #E7E5DA;">
 3                     <tr>
 4                         <td>用户ID</td>
 5                         <td>反馈问题</td>
 6                         <td>设备类型</td>
 7                         <td>应用版本</td>
 8                         <td>系统版本</td>
 9                         <td>反馈时间</td>
10                         <td>最后回复</td>
11                     </tr>
12                 </thead>
13                 <tbody id="tablelise" style="table-layout: fixed; word-wrap: break-word;">
14                     <tr>
15                         <td></td>
16                         <td></td>
17                         <td></td>
18                         <td></td>
19                         <td></td>
20                         <td></td>
21                         <td></td>
22                     </tr>
23                 </tbody>
24             </table>

3:js插入数据:

 1 function showGcmList() {
 2
 3             var datable = $(‘#tablemsg‘).dataTable({ "bDestroy": true});
 4             datable.fnClearTable();
 5
 6             for (var i = 0; i < data.length; i++) {
 7
 8
 9                 $tr = $(‘<tr>‘ +
10                        ‘<td>‘ + data[i].userid + ‘</td>‘ +
11                        ‘<td>‘ + msg + ‘</td>‘ +
12                         ‘<td >‘ + data[i].devicetype + ‘</td>‘ +
13                         ‘<td >‘ + data[i].appver + ‘</td>‘ +
14                         ‘<td >‘ + data[i].osver + ‘</td>‘ +
15                         ‘<td >‘ + data[i].msgtime + ‘</td>‘ +
16                         ‘<td>‘+ data[i].id + ‘</td>‘ +
17              ‘</tr>‘)
18
19                 $(‘#tablelise‘).append($tr);
20             }
21             $("#tablelise tr:odd").addClass("tabEven");
22             tableui();
23         }

  

   注: var datable = $(‘#tablemsg‘).dataTable({ "bDestroy": true});    datable.fnClearTable();   是对table中的数据清空(同$(‘#tablelise‘).empty();).

4:tableui() 函数就是对table表的渲染(每个属性,下面会有详细介绍):

 1 function tableui() {
 2
 3     $(function () {
 4     $("#tablemsg").dataTable({ //表的ID
 5     "bDestroy": true,
 6
 7     "bPaginate": true, //开关,是否显示分页器
 8     "bJQueryUI": false, //开关,是否启用JQueryUI风格
 9     "bAutoWidth": false, //自适应宽度
10     "bFilter": true,         //是否显示模糊查询
11     "bProcessing": false,
12     "bStateSave": true,     //是否开启cookie,当需要对table的数据处理后,依然停留在该页数据。
13     "bSort": true,              //是否排序
14     "bLengthChange": true, //开关,是否显示每页大小的下拉框
15     "aLengthMenu": [30, 50, 60],//下拉框的值
16     "iDisplayLength": 30,  //下拉框的初始值
17
18     "aaSorting": [[5, "desc"]],      //当bSort为true是起作用,即table的第6行按降序排。
19     "sPaginationType": "full_numbers", //table脚标显示
20     "aoColumns": [                           //每列的宽度(可省略)
21       { sWidth: ‘80px‘ },
22       { sWidth: ‘23%‘ },
23       { sWidth: ‘80px‘ },
24       { sWidth: ‘80px‘ },
25       { sWidth: ‘80px‘ },
26       { sWidth: ‘100px‘ },
27       { sWidth: ‘23%‘ },     
28     ],
29
30     "oLanguage": {
31     "sProcessing": "正在加载中......",
32     "sLengthMenu": "每页显示 _MENU_ 条记录",
33     "sZeroRecords": "对不起,查询不到相关数据!",
34     "sEmptyTable": "表中无数据存在!",
35     "sInfo": "当前显示 _START_ 到 _END_ 条,共 _TOTAL_ 条记录",
36     "sInfoFiltered": "数据表中共为 _MAX_ 条记录",
37     "sSearch": "模糊搜索",
38     "oPaginate": {
39     "sFirst": "首页",
40     "sPrevious": "上一页",
41     "sNext": "下一页",
42     "sLast": "末页"
43     }
44     }
45   });
46   });
47 }

5:效果:

"bFilter" : true 属性是否显示搜索:    

"bLengthChange": true  属性是否显示每页的显示值:   其中 aLengthMenu 的值为下拉框的各个值,iDisplayLength  为初始值。

"sPaginationType": "full_numbers"  属性设置分页脚的显示样式  

最终显示效果:

    二:PHP分页(ThinkPHP):

  1:准备分页类文件 Page.class.php  (类位于  /ThinkPHP/Library/Org/Util/ 文件夹下,如果没有,可在网上下载)。

  2:后台PHP代码  function showTable():

 1     function showTable(){
 2         $table = M ( ‘msg‘, ‘‘, ‘DB_CONFIG‘ );
 3         if(isset($_GET[‘p‘])){
 4             $p=$_GET[‘p‘];
 5
 6         }else{
 7             $p=1;
 8         }
 9
10         import("Org.Util.Page");//加载分页类
11
12         $countaql=‘select count(1) as count from fb_msg_android where userfeedback <> 0‘;
13         $count = $table->query($countaql);   //查询数据
14
15         $page=new \Page(intval($count[0][‘count‘]),8);    //第一个参数是 数据总数,第二个参数是  每页显示的数据个数
16
17
18         $sqlstrmsg="select * from fb_msg_android where userfeedback <> 0 limit $page->firstRow,$page->listRows";
19         $data = $table->query($sqlstrmsg);      //查询数据,从第一条到第8条
20
21         $page->setConfig(‘header‘,‘条记录‘);    //分页脚标设置
22         $page->setConfig(‘prev‘,"上一页");
23         $page->setConfig(‘next‘,‘下一页‘);
24             $page->setConfig(‘first‘,‘首页‘);
25         $page->setConfig(‘last‘,‘末页‘);
26
27         $show=$page->show();        //显示分页(必写)
28
29         $this->assign(‘select‘,$data);    //查询数据渲染模板
30
31         $this->assign(‘page‘,$show);       //渲染分页table
32
33         $this->display();         //显示面板
34     }

 3:添加模板(html表):

 1 <table class="table" border="1" style="width:100%;border-collapse:collapse;border:2px solid #000;text-align:center;">
 2         <tr>
 3             <th>系统ID</th>
 4             <th>用户ID</th>
 5             <th>信息</th>
 6             <th>信息发布时间</th>
 7             <th>操作数</th>
 8         </tr>
 9
10         <foreach name=‘select‘ item=‘b‘>   <-- 后台的 $this->assign(‘select‘,$data); 的查询数据-->
11             <tr>
12                 <td>{$b.id}</td>
13                 <td>{$b.uid}</td>
14                 <td>{$b.msg}</td>
15                 <td>{$b.msgtime}</td>
16                 <td>{$b.userfeedback}</td>
17             </tr>
18         </foreach>
19         <tfoot>                                <-- 必须有 tfoot 用于显示分页脚标 -->
20             <tr style="background-color:#000;color:#ffffff;">
21                 <td colspan=‘5‘ align=‘right‘>
22                     {$page}
23                 </td>
24             </tr>
25         </tfoot>
26     </table>

  4:效果:

  参考链接:http://blog.163.com/john_pei/blog/static/2046000172014270125286/

                http://www.thinkphp.cn/info/192.html

       http://blog.csdn.net/xiaojun1288/article/details/6861501

时间: 2024-11-05 12:12:46

Table 分页处理的相关文章

html 布局;css3+jq 下拉菜单;table分页动态添加行;html5本地存储;简单易用的html框架

简单好用的html框架,预览图见最后: 源码: 1.页面布局使用table: table 嵌套 +iframe 布局: 2.下拉菜单为jq+css3 动画; css input 无边框,select下拉菜单美化 1 input{appearance:none;background-color:transparent;border: solid 0px #000;} /*input 无边框*/ 2 input:disabled{background-color:#d2d2d2;border:0px

js完美实现table分页

// JavaScript Document /** * js分页类 * @param iAbsolute 每页显示记录数 * @param sTableId 分页表格属性ID值,为String * @param sTBodyId 分页表格TBODY的属性ID值,为String,此项为要分页的主体内容 * @Version 1.0.0 * @author 辛现宝 2007-01-15 created * var __variable__; private * function __method_

bootstrap table 分页后,重新搜索的问题

前提: 自定义搜索且有分页功能,比如搜索产品名的功能. 现象:当搜索充气娃娃的时候返回100条记录,翻到第五页.  这时候搜索按摩棒,数据有200条,结果应该是第一页的记录,但是实际显示的还是第五页的结果.  也就是重新搜索后,pagenumber没有变. 按网上大部分说的:重新设置option就行了 $('#tableList').bootstrapTable({pageNumber:1,pageSize:10}); 以上是解决不了这个问题. 正确做法是 $("#table").bo

利用js制作html table分页示例(js实现分页)

有时候table的列数太长,不利于使用者查询,所以利用JS做了一个table的分页,以下为相关代码 一.JS代码 <script type="text/javascript"> var pageSize = 15; //每页显示的记录条数 var curPage=0; //当前页 var lastPage; //最后页 var direct=0; //方向 var len; //总行数 var page; //总页数 var begin; var end; $(docume

简单table分页

html <table id="pagingTable"> <thead> <tr> <td> 第一列 </td> <td> 第二列 </td> <td> 第三列 </td> <td> 第四列 </td> <td> 第五列 </td> </tr> </thead> <tbody> <tr&g

bootstrap table 分页序号递增问题 (转)

原文地址:https://segmentfault.com/q/1010000011040346 如题,怎么在bootstrap table中显示序号,序号递增,并且分页有效,等于是每页10条,第2页的序号可以从11开始到20.之前的是这样写的columns的序号: columns:[{ field: '序号', title: 'number', width:5 , align:'center', switchable:false, formatter:function(value,row,in

Bootstrap table 分页 In asp.net MVC

中文翻译文档: http://blog.csdn.net/rickiyeat/article/details/56483577 版本说明: Jquery v2.1.1 Bootstrap V3.3.7 bootstrap-table V1.11.1 一.视图页 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv=&

bootstrap table 分页只显示分页不显示总页数等数据

搜了下没找到解决方案,就用CSS来解决了. 把paginationDetailHAlign:"right",使pagination-detail的class为.pull-right.pagination-detail, 设置 .pull-right.pagination-detail{display:none;} 就实现了隐藏具体分页显示. 原文地址:https://www.cnblogs.com/telwanggs/p/8665612.html

bootstarap table 分页导出 vue版

有全部导出与部分选择导出 1 <button type="button" class="btn btn-default" @click="exportExcel('all')"> 2 <span class="fa fa-sign-out" aria-hidden="true"></span>全部导出 3 </button> 4 <button type