jQuery DataTables iDisplayLength无法正常工作。我该如何解决?

时间:2019-08-21 15:14:23

标签: php jquery datatables pagination

我正在尝试从MySQL数据库中获取大量数据。因此,我不希望用户一次获取所有数据,因为这可能会破坏数据库服务器。但是,当我设置jQuery Datatable选项时,它似乎不受我设置的DisplayLength的影响。当我更改要显示的项目数量时,框和底部的分页确实发生了变化,但是数据保持不变。

我尝试在和的列中添加一个不可见字段,这过去似乎有所帮助。对于这个问题却没有。

$.post("index.php?action=getDataStructurePropsFromSensorId", {
                sensorId        : sensorId
                                                }, function(data) {
                dataProps.push({ "mDataProp": "data_entry_id" });
                data.forEach(function (item, i) {
                    var th = i;

                    $('#data-th-'+th).html(item['struct_property_label']);

                    $('.data-th').each(function () {
                        if ($(this).html() == '') {
                            $(this).hide();
                        } else {
                            $(this).show();
                        }
                    });
                    dataProps.push({ "mDataProp": "data_value_"+i.toString(), "bSortable": false,"bSearchable": false});
                });
                dataProps.push({ "mDataProp": "data_entry_created_at", "bSortable": false, "bSearchable": false });
                dataProps.push({ "mDataProp": "data_entry_id", "bVisible": false });

                var obj2 = {
                "bStateSave": true,
                "bProcessing": true,
                "bRetrieve": true,
                "bServerSide": true,
                "sAjaxSource": "index.php?&action=getSensorData&sensor_id="+sensorId+"&from="+from+"&till="+till,
                "iDisplayLength": 5,
                "aLengthMenu": [[5, 10, 25, 50, 100, 200], [5, 10, 25, 50, 100, 200]],
                "aoColumns": dataProps,
                "fnRowCallback": function( nRow, aaData, iDisplayIndex ) {
                return nRow;
                },
                "aaSorting": [[0, 'asc']],
                "bJQueryUI": true,
                "sPaginationType": "full_numbers",
                "fnInitComplete": function (oSettings, json) {
                },
                "fnDrawCallback": function () {
                }
            };

            oDataTableOverview = $('#sensor_data_dt').dataTable(obj2);
            }, "json");

我预计有5条记录,具体取决于页面和分页数量框中的选择。有谁知道为什么我要获取所有数据而不是5条记录?

1 个答案:

答案 0 :(得分:0)

您正在使用哪个数据表版本?对于版本1.10及更高版本的数据表,请使用“ pageLength”而不是“ iDisplayLength”

fig.layout.showlegend = False