【问题标题】:How to change pagination in Datatables on key events?如何更改数据表中关键事件的分页?
【发布时间】:2016-10-30 10:28:44
【问题描述】:

我正在使用 Datatables jQuery 插件来显示数据。这是我需要的:

  • 当用户在搜索框中输入内容时,分页消失并立即显示所有记录。
  • 当用户清除搜索框时,表格应该回到原来的状态,分页等等。

有没有办法做到这一点?我尝试过以下操作:

var $dt = $('#datatable').DataTable();
$("input[type=search]").keyup(function() {
    var search_string = $(this).val();
    if(search_string.length > 0) {
        $dt.destroy();
        $('#datatable').DataTable({
            "paging": false
        });
    } else {
        $('#datatable').DataTable();
    }           
});

但是在我开始输入之后,数据表重新加载并且光标不在搜索框内。

【问题讨论】:

  • 对codeignitor不太熟悉,但这并不重要 - 你不能在搜索时在桌子上做一个.destroy(),使用新选项,然后放回原来的选项什么时候删除搜索?
  • @junkfoodjunkie 请查看我的编辑。
  • 啊。对。如果您不先拨打destroy() 怎么办?只是将分页设置为 false?
  • 我该怎么做?不调用 DataTable()
  • 只需删除$('#datatable').DataTable().destroy(); 行,然后进行测试?

标签: javascript jquery datatable


【解决方案1】:

你可以使用

$('#datatable').DataTable().page.len(-1).draw();

更改表页长度。示例:

var $dt = $('#datatable').DataTable();
$("input[type=search]").keyup(function() {
    var search_string = $(this).val();
    if(search_string.length > 0) {
        // Show all records on one page.
        $dt.page.len(-1).draw();
    } else {
        // Reset page length.
        $dt.page.len(10).draw();
    }           
});

来源:https://datatables.net/reference/api/page.len()

【讨论】:

    猜你喜欢
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多