【问题标题】:jQuery Datatable not updating the pagination info after filtering过滤后jQuery Datatable不更新分页信息
【发布时间】:2014-07-15 12:18:10
【问题描述】:

我有以下代码,它根据输入到文本输入中的内容成功过滤数据表的结果。

$('.search-query').keyup(function(e) {
     my_table.fnFilter($(this).val());
});

但是,这不会改变分页信息,因此尽管只显示 3 个结果,但仍会显示 11 页有 1005 条记录。

是否有其他方法可以通过更新的分页实现此目的?

编辑:

这是我构建表格的代码...

my_table = $('.my_table').dataTable({
    "sPaginationType": "bootstrap",
    "iDisplayLength": 100,
    "iDisplayStart": 0,
    "bProcessing": true,
    "bServerSide": true,
    "sServerMethod": "POST",
    "sAjaxSource": "/get/my/table/data",
    "bSortable": "true",
    "sDom": '<"top">rt<"bottom"ip><"clear">',
    "aaSorting": [],
    "aoColumns": [
        { "bSearchable": true, "bSortable": true},
        { "bSortable": true,},
        { "bSortable": true},
        { "bSortable": true},
        {"bSortable": true},
        {"bSortable": true},
        {"bSearchable": true, "bSortable": true},
    ],
    "oLanguage": {
        "sEmptyTable": "No Results Found"
    },
    fnDrawCallback: function(){
        if($('.dataTables_paginate ul li').length <= 3)
        {
            $('.dataTables_paginate').hide();
        }
        else
        {
            $('.dataTables_paginate').show();
        }
    }
});

【问题讨论】:

  • 您能否设置一个 JS Fiddle 链接,以便了解您的问题,同时指定您使用的版本。最新版本可能会解决此类问题。
  • 检查该过滤器是否发生然后 tr 被删除或它只是隐藏。如果隐藏则行为是正确的。
  • 你是用Datatable的分页还是自定义写的?
  • @Jai 正在删除 tr。
  • 什么版本的数据表?我高度怀疑这个问题与服务器端设置有关。尝试升级。

标签: jquery pagination datatables jquery-datatables


【解决方案1】:

尝试使用更新表

$('.search-query').keyup(function(e) {
    my_table.fnFilter($(this).val()).fnUpdate({});
});

【讨论】:

  • 这不起作用...我认为问题是由于通过ajax加载数据引起的。
猜你喜欢
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 2013-04-15
  • 1970-01-01
  • 2017-06-02
  • 1970-01-01
  • 2017-03-25
相关资源
最近更新 更多