jquery 正在从数据表获取lengthmenu值

egmofgnx  于 2022-11-22  发布在  jQuery
关注(0)|答案(4)|浏览(132)

我有以下选项作为的一部分:

"lengthMenu": [[10, 20, 50, 100, -1], [10, 20, 50, 100, "All"]],

我试图得到为lengthMenu选择的值。但是,在查看了jquery API之后,我似乎找不到任何东西来得到这个值。你们能想到什么可能的解决方案吗?

5vf7fwbs

5vf7fwbs1#

DataTables Documentation 有 你 要 找 的 东西 ! page.info() 函数 将 返回 很多 关于 DataTable 分页 的 不同 信息 , 包括 每页 显示 的 记录 数 ( lengthMenu 的 选定 值 ) 。
下面 是 page.info() 调用 将 返回 的 所有 对象 的 列表 ( 所有 可以 引用 的 对象 , 就 像 上面 的 示例 一样 :

{
    "page": 1, //current page (0 based index)
    "pages": 6, //total number of pages
    "start": 10, //index of first element on page
    "end": 20, //index of last element on page
    "length": 10, //lengthMenu setting - this is what you want -
    "recordsTotal": 57, //total number of records
    "recordsDisplay": 57, //total number of records to display after filtering
    "serverSide": false //whether or not serverside processing is used
}

中 的 每 一 个
考虑 到 所有 这些 , 您 实际 需要 的 内容 将 如下 所 示

var table = $('#example').DataTable(); //note that you probably already have this call
var info = table.page.info();
var lengthMenuSetting = info.length; //The value you want

格式
所有 这些 ( 更 详细 的 信息 和 一些 示例 ) 都 可以 在 上面 提供 的 链接 中 找到 。

    • EDIT : * * 实际 上 , 如果 您 想要 的 * all * 是 页面 长度 , 您 可以 使用 table.page.len() 来 获得 页面 长度 , 而 不是 table.page.info().length
bgibtngc

bgibtngc2#

我觉得你应该用aLengthmenu而不是lengthmenu

$('#table_id').DataTable( {
   "aLengthMenu": [[10, 20, 50, 100, -1], [10, 20, 50, 100, "All"]]
});
bqjvbblv

bqjvbblv3#

是的,Chris H的答案是正确的,并且有效,另一个可能的解决方案是$(“select”).瓦尔(),我最终发现了这一点。
谢谢大家的帮助,我试着在网上寻找这个问题的答案,但没有找到太多。希望这些答案能帮助其他人在未来。

tnkciper

tnkciper4#

lengthMenu: [
  [10, 25, 50,100, -1],
  [10, 25, 50,100, 'All']
  ],
  "initComplete": function (settings, json) {
    var recordsTotal = $('#Example').DataTable().ajax.json().recordsTotal;
    $('select[name="Example_length"] option:contains("All")').val(recordsTotal);
  }

相关问题