【问题标题】:How to override scripts of jquery datatable API?如何覆盖 jquery 数据表 API 的脚本?
【发布时间】:2017-03-06 16:15:31
【问题描述】:

我正在使用 codeigniter,并且我已经在我的页面中实现了 jquery datatable api。一切正常。如您所知,默认情况下,api 会在表格上方为我们提供一个下拉列表,我们可以在其中选择不显示的记录,并且我们还具有搜索功能。现在,我想要的是,当用户输入搜索框并且表格显示搜索结果时。我想一次显示所有记录,而不是有限的结果。我该怎么做?

【问题讨论】:

标签: jquery jquery-plugins datatables


【解决方案1】:

你需要

  1. lengthMenu 中包含一个-1 值,以便所有行都是可选的
  2. 在过滤表格时,即广播search.dt时,将lengthMenus -1选项设置为选中并触发change事件
  3. 在 dataTable 对象上设置一个标志,以防止事件被反复触发

例子:

var table = $('#example').DataTable({
  lengthMenu: [[10, -1], [10, "All"]]
})  

$('#example').on('search.dt', function(e, api) {
  if (!api._allForced) {
    $('.dataTables_length select option[value=-1]').prop('selected', true);
    $('.dataTables_length select').change();
    api._allForced = true    
  }
})

http://jsfiddle.net/stmo9w8w/

【讨论】:

  • 好的,所以使用这段代码,当输入输入到搜索框时,我可以显示所有记录。但是当我清除搜索框上的输入时,下拉值不会回到它的默认值?感谢您的回复
  • @RabinLama, "但是当我清除搜索框上的输入时,下拉值不会回到它的默认值?",是的 - 我只回答这个问题。当搜索词为空时,重置下拉菜单应该是一件很容易的事。
【解决方案2】:

https://datatables.net/examples/advanced_init/length_menu.html

可以轻松自定义长度显示的选项 使用 lengthMenu 的菜单(默认在表格的左上角) 初始化选项。

$(document).ready(function() {
    $('#example').DataTable( {
        "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
    } );
} );

谷歌上的第一个结果:

How to show all rows by default in JQuery DataTable

【讨论】:

  • 你为什么要复制别人对重复问题的回答?将此标记为重复项。不要发布重复的答案。
  • 感谢您的回复。会试试的。我在哪里可以找到更多这些(即 aLengthMenu、iDisplayLength、分页)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-27
  • 1970-01-01
  • 1970-01-01
  • 2022-09-06
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
相关资源
最近更新 更多