Pagination 引导表服务器端分页

Pagination 引导表服务器端分页,pagination,bootstrap-table,Pagination,Bootstrap Table,我使用一个引导表来显示用户数据。目前它使用客户端分页,但我想使用服务器端分页,因为我的记录非常庞大。如果有人能在这方面帮助我,我将不胜感激 <table id="tblsers" data-height="400" style="width: 100%;margin-top:0 !important" class="bTable" data-search="true"></table> <script> $(document).ready(func

我使用一个引导表来显示用户数据。目前它使用客户端分页,但我想使用服务器端分页,因为我的记录非常庞大。如果有人能在这方面帮助我,我将不胜感激

 <table id="tblsers" data-height="400" style="width: 100%;margin-top:0 !important" class="bTable" data-search="true"></table>

<script>
    $(document).ready(function () {
        getUsers();
    });
    function getUsers() {

        $.ajax({
            type: "POST",
            url: "Data.aspx/getUsers",
            contentType: "application/json; charset=utf-8",
        success: function (response) {
            debugger
            var table = "";

            var $tblRegisteredUsersTbl = $('#tblRegisteredUsers');

            if (response == "none") {

                $tblRegisteredUsersTbl.bootstrapTable('destroy');
                table = "<tr style='font-weight: bold'><td>No records</td></tr>"
                $("#tblRegisteredUsers").html(table);
                $("#tblRegisteredUsers").children("tbody").css("text-align", 'center');
                $("#tblRegisteredUsers").addClass("table table-hover");

            } else {


                $("#tblRegisteredUsers").children("tbody").css("text-align", 'left');
                var registeredUsers = JSON.parse(response.d);
                $($tblRegisteredUsersTbl).hide();
                $tblRegisteredUsersTbl.bootstrapTable('destroy');
                $tblRegisteredUsersTbl.bootstrapTable({
                    method: 'get',
                    columns: [
                    {
                        field: 'SNo', title: 'S.No', width: 10, align: 'center', sortable: true, formatter: function (value, row, index) {
                            if (value == null || value == "") {
                                return ['<span>N/A</span>']
                            }
                            return ['<span>' + value
                                + '</span>'];
                        }
                    },

                              {
                                  field: 'Name', title: 'User Name', align: 'center', sortable: true, width: 100, formatter: function (value, row, index) {

                                      if (value == null || value == "") {
                                          return ['<span>N/A</span>']
                                      }
                                      else {
                                          return value;
                                      }

                                  }
                              },
                              {
                                  field: 'Address', title: 'User Address', align: 'center', sortable: true, width: 100, formatter: function (value, row, index) {

                                      if (value == null || value == "") {
                                          return ['<span>N/A</span>']
                                      }
                                      else {
                                          return value;
                                      }

                                  }
                              },

                            {
                                field: 'Phone', title: 'User Phone', align: 'center', width: 200, sortable: true, formatter: function (value, row, index) {

                                    if (value == null || value == "") {
                                        return ['<span>N/A</span>']
                                    }
                                    else {
                                        return value;
                                    }

                                }
                            },


                    ],
                    onSort: function (name, order) {

                    },
                    data: registeredUsers,
                    cache: false,
                    height: 400,
                    pagination: true,
                    pageSize: 10,
                    pageList: [10, 25, 50, 100, 200],
                    search: true,
                    showColumns: true,
                    showRefresh: true,
                    minimumCountColumns: 2,



                });
                $($tblRegisteredUsersTbl).fadeIn();
              }

        },
        failure: function (msg) {
            showMessage("error", 'Some error occurred\n Please try again !');
        }
    });
    }
</script>

$(文档).ready(函数(){
getUsers();
});
函数getUsers(){
$.ajax({
类型:“POST”,
url:“Data.aspx/getUsers”,
contentType:“应用程序/json;字符集=utf-8”,
成功:功能(响应){
调试器
var表=”;
变量$tblRegisteredUsersTbl=$(“#tblRegisteredUsers”);
如果(响应=“无”){
$tblRegisteredUsersTbl.bootstrapTable('destroy');
table=“无记录”
$(“#tblRegisteredUsers”).html(表格);
$(“#tblRegisteredUsers”).children(“tbody”).css(“文本对齐”,“居中”);
$(“#tblRegisteredUsers”).addClass(“表格悬停”);
}否则{
$(“#tblRegisteredUsers”).children(“tbody”).css(“文本对齐”,“左”);
var registeredUsers=JSON.parse(response.d);
$($tblRegisteredUsersTbl).hide();
$tblRegisteredUsersTbl.bootstrapTable('destroy');
$tblRegisteredUsersTbl.bootstrapTable({
方法:“get”,
栏目:[
{
字段:'SNo',标题:'S.No',宽度:10,对齐:'center',可排序:true,格式化程序:函数(值、行、索引){
如果(值==null | |值==“”){
返回['N/A']
}
返回[“”+值
+ ''];
}
},
{
字段:'Name',标题:'User Name',对齐:'center',可排序:true,宽度:100,格式化程序:函数(值,行,索引){
如果(值==null | |值==“”){
返回['N/A']
}
否则{
返回值;
}
}
},
{
字段:“地址”,标题:“用户地址”,对齐:“中心”,可排序:true,宽度:100,格式化程序:函数(值,行,索引){
如果(值==null | |值==“”){
返回['N/A']
}
否则{
返回值;
}
}
},
{
字段:'Phone',标题:'User Phone',对齐:'center',宽度:200,可排序:true,格式化程序:函数(值、行、索引){
如果(值==null | |值==“”){
返回['N/A']
}
否则{
返回值;
}
}
},
],
onSort:函数(名称、顺序){
},
数据来源:注册数据来源:,
cache:false,
身高:400,
分页:正确,
页面大小:10,
页面列表:[10,25,50,100,200],
搜索:对,
展示栏:没错,
是的,
最小计数列:2,
});
$($tblRegisteredUsersTbl).fadeIn();
}
},
故障:功能(msg){
showMessage(“错误”,“出现了一些错误\n请重试!”);
}
});
}
这是一个令人尖叫的问题。它有内置的ajax,用于执行您正在寻找的查询更新,另外它还有内置的排序、过滤、分页等功能

一个源于ajax的数据表。 使用引导CSS

最后,不管您是否使用datatables,请注意,您必须适应服务器端的所有各种过滤器、排序等,也就是说,查询必须能够处理您想要用来挑选数据的任何参数。Datatables示例有一个用PHP编写的现成示例,但它肯定能够与任何返回JSON对象的页面进行对话。

更新(2019/05/07)

@tw1742询问是否必须将“总计”索引称为

答案是否定的,你可以用

属性:数据总计字段

类型:字符串

详细信息:输入包含“总计”数据的传入json

默认值:“总计”

示例:



原始答案

有一些特性文档和一些好的例子,还有许多人在项目github问题中提出了更多定义明确的问题

无法给您一个简洁的答案,因为所有的代码都在那里,但如文档中所述,您的格式需要如下:

{ "total": 200, "rows": [ { "id": 0, "name": "Item 0", "price": "$0" }, { "id": 1, "name": "Item 1", "price": "$1" },

引导表可以从公开json数据数组的url读取数据

当您使用服务器端分页时,它需要一个总计字段和一个结果行数组(您可以自定义这些名称),但这与您返回所有结果的直觉相反

这个总数在 SELECT column FROM table LIMIT 10 OFFSET 10