[DataTables分页器,只有一页时显示很多页面

问题描述 投票:0回答:1

这是一个奇怪的人。我正在使用带有jQuery 3.3.1和Bootstrap 3.3.7的数据表v1.10.19 []

我的数据表网格被配置为显示1000条记录(但是您可以将其更改为2500、5000和“全部”)。我的数据库中只有大约60条记录。

它正在使用服务器端处理来检索数据。

当网格加载时,寻呼机显示5个按钮和一个椭圆(好像还有更多)。

甚至更奇怪,如果我将下拉列表更改为显示“所有”记录,它的作用与我期望的一样,即寻呼机具有1个页面按钮。

有效载荷几乎相同:

{
    "data": {
        "draw": 8,
        "recordsTotal": 86,
        "recordsFiltered": 66,
        "data": [rows of data here]
    },
    "outcome": {
        "opResult": "Success",
        "message": ""
    }
}

当您单击第2页时,它确实成功检索到0行的有效负载。但寻呼机上不应有第2页可用。

数据表的配置对象看起来像这样:

    eventsSvr.buildConfig = function (url) {
        return {
            "processing": true,
            "serverSide": true,
            //"paging": true,
            "ajax": {
                url: url,
                type: ajax.requestPOST,
                dataSrc: 'data.data' // the path in the JSON structure to the array which will be the rows.
            },
            "order": [[1, "asc"]],
            "lengthMenu": [[1000, 2500, 5000, -1], [1000, 2500, 5000, "All"]],
            "initComplete": function (settings, json) {
                eventsSvr.searchTextSpan.text('Search').removeClass('search-is-on');
            },
            "columns": eventsSvr.grid.columns,
            "columnDefs": eventsSvr.grid.columnDefs,
            dom: 'ltp'
        };

我在页面上确实有很多自定义搜索,所以我不得不写很多这样的代码:

$.fn.dataTable.ext.search.push(
    function (settings, data, dataIndex) {
        var picker3 = $(eventsSvr.datePickerInputs[0]).data(icapp.kendoKey);
        var picker4 = $(eventsSvr.datePickerInputs[1]).data(icapp.kendoKey);
        var rowStartDate = moment(data[3], icapp.date.momentParseFormat).toDate();
        var rowEndDate = moment(data[4], icapp.date.momentParseFormat).toDate();

        ... etc.
    }
);

但是奇怪的是,“全部”记录与1000条记录之间的行为不同。如上所述,选择“全部”记录有效(仅产生一个页面按钮),但是其他所有页面大小均不起作用(即1000、2500、5000)。确实返回了1页的数据,但我得到了5页按钮和一个省略号。

任何想法为什么会这样?

这是一个奇怪的人。我在jQuery 3.3.1和Bootstrap 3.3.7中使用了数据表v1.10.19,我的数据表网格配置为显示1000条记录(但您可以将其更改为2500、5000和“全部”)。我是...

datatables datatables-1.10
1个回答
1
投票

[使用服务器端处理模式时,DataTables期望drawrecordsTotalrecordsFiltered是根级元素。考虑将您的回复更改为以下内容,您可以删除dataSrc选项。

© www.soinside.com 2019 - 2024. All rights reserved.