【问题标题】:Sorting Datatables by Using Checked Rows使用选中的行对数据表进行排序
【发布时间】:2016-10-29 20:58:27
【问题描述】:

我有一个使用数据表的表。它在第一列包含一个复选框。如何对表格进行排序,以便在选中复选框时,选中的行应位于顶部?

<table class="table table-bordered table-striped">
  <thead align='center'><tr><th></th><th>Alphabet</th><th>Numeric</th></tr></thead>
  <tbody align='center'>
    <tr>
      <td><input type='checkbox' name='id[]' value=1></td>
      <td>A</td>
      <td>10</td>
    </tr>
    <tr>
      <td><input type='checkbox' name='id[]' value=2></td>
      <td>B</td>
      <td>100</td>
    </tr>
    <tr>
      <td><input type='checkbox' name='id[]' value=3></td>
      <td>C</td>
      <td>1000</td>
    </tr>
  </tbody>
</table>

【问题讨论】:

  • 只能勾选一行还是可以勾选多行?
  • 可以检查多行
  • 如果您可以发布您的 DataTables 初始化调用会很有帮助,因为很难判断您是否只是在创建此 HTML 表,或者这是否是 DataTables 执行的结果。

标签: jquery html checkbox datatables


【解决方案1】:

orderoption 可能有您要搜索的内容。此调用的用法如下(来自链接文档):

$('#example').dataTable( {
    /*Other initialization options go here*/
    //sort by column 0 ascending and then by column 1 ascending
    "order": [[ 0, 'asc' ], [ 1, 'asc' ]]
} );

您可以根据需要按任意多的列进行排序,因此,如果您想按其他列值进行排序并且仍然有选中的行出现在顶部,只需将复选框列先放在数组列表中,然后再放在另一个要排序的列。

此解决方案假定您使用的是 DataTables 复选框,而不仅仅是在之后将 HTML 复选框添加到您的表格中。如果您当前没有使用 DataTables 复选框,我鼓励您使用,here 是指向示例页面的链接,用于如何初始化这些复选框(请注意,此文档适用于 DataTables 的付费编辑器扩展,但复选框本身将起作用没有编辑器扩展)。

这样做将通过搜索保持排序,但请注意,如果您不关闭 manual ordering (ordering: false),那么用户将能够删除您的默认排序并将其替换为他们自己的排序.

【讨论】:

    猜你喜欢
    • 2017-05-18
    • 1970-01-01
    • 2012-02-24
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多