jquery DataTable - 动态更改 iDisplayLength 影响分页

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

我有一个带有

"iDisplayLength":-1
(所有记录)的jquery DataTable,在第一次加载时用户将看到所有记录。 该表每分钟刷新一次(每次刷新都会初始化表 - 也许这不是最好的?)。

 function initEventsTable() {

        self.$eventTable = $("#events_table");

        if (self.$eventTable != undefined) {

            self.oTable = self.$eventTable.DataTable({

                "scrollX": true,

                "aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],

                // Set the initial value
                "iDisplayLength":-1,

                "sPaginationType": "bootstrap",
                "oLanguage": {
                    "sLengthMenu": "_MENU_ records",
                    "oPaginate": {
                        "sPrevious": "Prev",
                        "sNext": "Next"
                    }
                },

                aaSorting: [[8, 'desc'], [5, 'asc']],
                bSortable: true,

            });
}

用户可以更改行数(例如 10 行):

$('[name="events_table_length"]').on('change', function () {
        eventsTableLength = $(this).val();
    });

表格刷新后(

initEventsTable()
)我使用下面的代码来更改长度:

var oSettings = self.oTable.fnSettings();
        if (oSettings != null)
        {
            $('select[name^="events_table_length"] option:selected').attr("selected", null);
            $('select[name^="events_table_length"] option[value=' + eventsTableLength + ']').attr("selected", "selected");
            oSettings._iDisplayLength = eventsTableLength;
            self.oTable.fnDraw();            
        }

问题出在分页上,刷新后,当我点击第 2 页时,例如所有记录都会出现,而不仅仅是 10 条。

jquery datatable pagination
1个回答
0
投票

我想出了这个:

$('select[name^="events_table_length"]').change();

我不再关注表格,而是关注长度的下拉列表。 我添加了一个

change()
,这就产生了魔力。

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