【问题标题】:jQuery DataTables - adding rows resets pagination and filteringjQuery DataTables - 添加行重置分页和过滤
【发布时间】:2015-10-24 10:41:44
【问题描述】:

我在控制台应用程序中使用 jQuery DataTables。

以下代码向 DataTable 添加一行:

$('#datatable-table').dataTable().fnAddData([
    '<h1>test</h1>',
    'test',
    'test',
    'test',
    'test',
    'test',
    'test',
    'test',
    'test',
    'test',
    'test'
]);

问题是,当您以编程方式添加一行时,它会重置用户的分页和过滤。因此,如果用户在第 3 页,当我更新表格时,他将返回到第 1 页。考虑到我经常需要添加/删除/更新行,这对我来说并不适用。

有什么建议吗?

【问题讨论】:

标签: jquery datatable datatables datatables-1.10


【解决方案1】:

jQuery DataTables 1.10 版有一个page() 方法,允许您获取或设置表的当前页面。

例如:

    var table = $('#myTable').DataTable();

    $('#btn').click(function() {
       table.row.add( [
           'new 1',
           'new 2'
        ]);

        var currentPage = table.page();  
        table.page(currentPage).draw(false);        
    });

添加新行后,代码获取当前页面,然后在重新绘制时将表格设置为该页面。

jsfiddle 演示 here。希望对您有所帮助。

【讨论】:

  • 不需要设置页面,调用draw(false)就够了,见this jsFiddle
  • 是的,但是设置页面对象会为您提供更多选项,例如移动到下一页/上一页。我只是想证明这一点。
猜你喜欢
  • 2015-12-18
  • 2016-10-07
  • 1970-01-01
  • 2013-12-23
  • 2016-12-18
  • 1970-01-01
  • 2015-08-27
  • 2014-12-08
  • 2020-04-05
相关资源
最近更新 更多