如何用一个html选择框改变两个jQuery数据表中的条目数



是否有一种方法可以显示页面中所有数据表上所选择的条目数,而不仅仅是单独显示?

这里是单独的dataTable:

var stockTable = $('#source').dataTable({
    "aaData": src,
    "sPaginationType": "full_numbers",
    "bFilter": true,
    "bProcessing": true,
    "bRedraw":true,
    "bDestroy":true,
    "bInfo":true,
    "bLengthChange":true,
    "aoColumns": [
        {"mData": "Title"},
        {"mData": "ID"},
        {"mData": "Language"}]
});
var catalogTable = $('#destination').dataTable({
    "aaData": dest,
    "sPaginationType": "full_numbers",
    "bFilter": true,
    "bProcessing": true,
    "bRedraw":true,
    "bDestroy":true,
    "bInfo":true,
    "bLengthChange":true,
    "aoColumns": [
        {"mData": "Module Title"},
        {"mData": "Module ID"},
        {"mData": "Module Language"}
    ],
    "oLanguage": {
    "sEmptyTable" : "<h1>Drag and Drop Courses Here</h1>"
}
});

如果有另一个类似的数据表,我有一个选择框如下:

<div class="filterArea borderBottomMedium clearfix">
<div class="no_padding entriesLength">
    <label>Show</label>
    <select id="entries" class="form-control">
      <option>10</option>
      <option>20</option>
      <option>30</option>
      <option>40</option>
      <option>50</option>
    </select>
    <label>entries</label>
</div>

我可以使用选择来显示所有数据表中的条目数吗?bLengthChange是真的,我可以单独改变两个表。但是我如何将它们一起更改为在selectbox中选择的条目数?

由于您使用的是"Show N entries"数据表下拉列表的单独下拉列表,因此您需要将更改事件绑定到下拉列表中,然后更改数据表中的下拉列表。数据表上的下拉列表的名称以与数据表相同的id开头。例如,如果你的数据表id="example",那么"Show N entries"的名称就以"example"开头。

你可以给你的表id都以相同的单词开头(像我的例子),或者你可以在你的JQuery绑定中使用多个名称选择器。

您需要确保所有表都具有与独立下拉列表相同的下拉列表值。您可以使用lengthMenu选项:

$('.table').DataTable( {
    "lengthMenu": [[10, 20, 30, 40, 50, -1], [10, 20, 30, 40, 50, "All"]]
} );

你可以将你的独立下拉列表绑定到一个更改事件,然后从每个数据表的下拉列表中选择相同的值(并触发一个更改事件,这样新选择的行数事件就会发生)

$("#entries").on('change',function() {
   var valSelected = $(this).val();
   $("select[name^='example']").each(function(i, val) {
       $(this).val(valSelected);
       $(this).change();
   });
});
JSFiddle示例

最新更新