ajax查询的动态生成的表格数据如何分页

有个查询页面,查询的数据是表格展示,ajax查询后append出来的表格,然后怎么给他们做分页?

  $.ajax({
                url: "/event/eventFindHis.do",
                type: "post",
                dataType: "json",
                async:false,  
                data: {
                    "id": eventId,
                    "customer_name": customer_name,
                    "customer_tel": customer_tel,
                    "title": title,
                    "acceptance_group": acceptance_group,
                    "handle_person": handle_person,
                    "state": state,
                    "status_reasons": status_reasons
                },
                success: function (result) { //status=1代表账号不存在0代表密码错误2代表登录成功
                    var data = result.data;
                    for (var i = 0; i < data.length; i++) {
                        var id = data[i].eventId;
                        var trs = '';
                        trs += '<tr>';
                        trs += '<td><a id="'+data[i].id+'" href="javascript:void(0)" class="Inquiry_btn" onclick=view(this)>'+data[i].id+'</a></td>' ; //
                        trs += '<td>' + data[i].title + '</td>';
                        trs += '<td>' + data[i].event_type + '</td>'; //
                        trs += '<td>' + data[i].submit_time + '</td>'; //
                        trs += '<td>' + data[i].accept_group + '</td>';
                        trs += '<td>' + data[i].operator_person + '</td>';
                        trs += '<td>' + data[i].state + '</td>';
                        trs += '</tr>';
                        $("#jg").append(trs);

                    }
//                     var num=$("#jg").children().length;它原先的是itable.row但是抓取不到对象
//                     alert("num="+num);
                  //-----------------------------------
                        var itable = document.getElementById("jg");
                        var num= data.length;
//                         var num = "7";//表格所有行数(所有记录数)
                        var totalPage = 0;//总页数
                        var pageSize = "10";//每页显示行数
                        //总共分几页 
                        if(num/pageSize > parseInt(num/pageSize)){   
                                totalPage=parseInt(num/pageSize)+1;   
                           }else{   
                               totalPage=parseInt(num/pageSize);   
                           }   
                        var currentPage = "1";//当前页数
                        var startRow = (currentPage - 1) * pageSize+1;//开始显示的行  31 
                           var endRow = currentPage * pageSize;//结束显示的行   40
                           endRow = (endRow > num)? num : endRow;  
                           console.log(endRow);
                           //遍历显示数据实现分页
                        for(var i=1;i<(num+1);i++){   
                            var irow =$("#jg").children()[i-1];
                            if(i>=startRow && i<=endRow){
                                 irow.style.display = "block";    
                            }else{
                                 irow.style.display = "none";
                            }
                        }
                        var pageEnd = document.getElementById("pageEnd");
//                         alert("pageEnd="+pageEnd);
                        var tempStr = "共"+num+"条记录 分"+totalPage+"页 当前第"+currentPage+"页";
//                         alert("tempStr="+tempStr);
//                         alert("num="+num+"totalPage="+totalPage+"currentPage="+currentPage);
                        if(currentPage>1){
                            tempStr += "<a href=\"#\" onClick=\"goPage("+(1)+","+psize+")\">首页</a>";
                            tempStr += "<a href=\"#\" onClick=\"goPage("+(currentPage-1)+","+psize+")\"><上一页</a>"
                        }else{
                            tempStr += "首页";
                            tempStr += "<上一页";    
                        }
                        if(currentPage<totalPage){
                            tempStr += "<a href=\"#\" onClick=\"goPage("+(currentPage+1)+","+psize+")\">下一页></a>";
                            tempStr += "<a href=\"#\" onClick=\"goPage("+(totalPage)+","+psize+")\">尾页</a>";
                        }else{
                            tempStr += "下一页>";
                            tempStr += "尾页";    
                        }
                        document.getElementById("barcon").innerHTML = tempStr;
                },
                error: function () {
                    alert("无数据");
                }

            });
        }

这个是我网上找的方法,没效果,应该怎么写?

onClick=\"goPage("+(totalPage)+","+psize+")\ 你有没有写这些跳转的方法呢? 其次效果什么的 你有没有开f12开发者工具调试一下 看下是什么情况呢?

            建议在SQL语句中就分页 ,EasyUI的比较简单 

大概思路:
1、创建Ajax向后台拿取数据的方法,绑定前台table,需要有参数,每页显示条数,当前页
2、再用一个函数创建分页,需要有参数,数据总数,当前页数,每页显示条数
3、分页函数判断显示分页的样式效果,并为每页增加点击事件调用读取数据函数,
4、后台方法要返回当前页数据和总数据数

通常的分页效果是:
服务器有1w条数据,假设30条未一页,通常我们请求的时候,会附带一个page(页码),还有size(30条),发送到后台,后台根据页码还有条数,
查询到第page页的总共30条信息(实际上是第page * 30开始的共30条的信息),同时,服务器还会返回一个总页码。比如10000/30=334页,
然后判断下当前页码与总页码的关系(这点看具体情况)
希望能帮到你

你这个没效果,是表格内容显示出来,还是分页条点击没有效果,还是查询数据就出问题了?
最怕的就是,这种表达不清晰的问题。

客户端分页吗?可以用jquery.pagination.js来分页,不用自己写,服务器端也可以,有回调得到当前页,自己请求服务器获取数据
http://www.jq22.com/jquery-info5697


<link href="http://www.jq22.com/demo/pagination20160204/style/pagination.css" rel="stylesheet" type="text/css">
<script src="http://cdn.bootcss.com/jquery/1.7.1/jquery.min.js"></script>
<script src="http://www.jq22.com/demo/pagination20160204/script/jquery.pagination.js"></script>
<table id="jg" border="1"></table>
<div id="pg" class="M-box"></div>
<script>

    data = []
    for (var i = 0; i < 50; i++) data.push({})
    var pagesize = 15, totalrecord = data.length;
    for (var i = 0; i < totalrecord; i++) {
        var id = data[i].eventId;
        var trs = '';
        trs += '<tr' + (i >= pagesize ? ' style="display:none"' : '') + '>';//大于显示的条数隐藏起来
        trs += '<td>'+i+'</td>';////测试用的td,自己注意删除
        trs += '<td><a id="' + data[i].id + '" href="javascript:void(0)" class="Inquiry_btn" onclick=view(this)>' + data[i].id + '</a></td>'; //
        trs += '<td>' + data[i].title + '</td>';
        trs += '<td>' + data[i].event_type + '</td>'; //
        trs += '<td>' + data[i].submit_time + '</td>'; //
        trs += '<td>' + data[i].accept_group + '</td>';
        trs += '<td>' + data[i].operator_person + '</td>';
        trs += '<td>' + data[i].state + '</td>';
        trs += '</tr>';
        $("#jg").append(trs);
    }

    $('#pg').pagination({
        totalData:totalrecord,
        showData: pagesize,
        coping: true,
        homePage: '首页',
        endPage: '末页',
        prevContent: '上页',
        nextContent: '下页',
        callback: function (that) {
            var current = that.getCurrent() - 1;//返回的页数从1开始

            $("#jg").find('tr').hide().filter(':gt(' + (current * pagesize - 1) + ')').filter(':lt(' + (pagesize) + ')').show()
            //从服务器端获取数据自己这里改ajax获取,传递current参数获取要的页数据
        }
    });
</script>

分页一般是后端拿数据的时候分吧,这样可以减少传入数据的量

这么写代码不累吗,现成的表格框架不用?bootstrap table用起来就可以不用再在前端耗费那么多时间了

http://www.jb51.net/article/105533.htm