禁用服务器端处理以进行排序

时间:2016-12-12 19:02:42

标签: javascript jquery sorting datatables server-side

我使用DataTables在表格中显示信息,并且我已启用服务器端加载(我只需要加载数据和分页)并且我不需要搜索或按服务器端排序,我需要为我的表默认搜索和排序(jQuery)。

我该怎么做?



var table2 = $('#datatable-buttons2').DataTable({
  "serverSide": true,
  "processing": true,
  "asSorting": ['desc', 'asc'],
  "ajax": {
    'type': 'POST',
    'url': 'test.php?nowsearch=1',
    'data': {
      inputaz: $("#inputaz").val(),
      inputta: $("#inputta").val(),
      inputkey: $("#inputkey").val()
    }
  },
  "columns": [{
    "data": "group_name"
  }, {
    "data": "sender"
  }, {
    "data": "date"
  }],
});




1 个答案:

答案 0 :(得分:0)

也许你可以这样做,自定义在Javascript中检索的数据,,但这没用;

如果您使用serverSide: true在客户端对项目进行排序,它将仅对当前检索到的数据进行排序,而不是基于数据库中的所有数据集(如果您实际限制结果,如果不这样做,则使用直接serverSide: false女巫将检索所有记录。)

例如,如果您有1000条记录,则只获得前10条记录的数据,而不是全部(10/25/50/100)。如果您按age进行本地排序,它将对检索到的10进行排序。然后,如果您转到下一页,您会注意到第2页不是从第1页开始的。

这就是为什么当你使用serverSide: true时必须使用后端语言对排序/搜索进行编码的原因:在那里你将先排序,然后然后你会返回10条排序的记录。< / p>

这就是这个选项的想法。

无论如何......您可以使用paging option为客户端(serverSide: false)添加分页。但是你需要了解性能。

简而言之,如果您将处理许多记录,您应该继续使用服务器端并从后端编码排序/搜索/分页/等返回相应的数据。不是那么难。您可以使用parameters sent来实现此目的。