Datatables JS - 如何使用HTML5禁用特定列的排序?

3
你知道如何使用HTML5来初始化表格的一些选项,而不是使用Javascript来完成相同的任务。哪种方法更好是超出了此问题的范围。
请参见HTML 5数据属性设置选项以获取更多信息。
这个问题的目标是找到一种方法来使用HTML5初始化来禁用某些列。 基本的Javascript初始化器如下:
$(document).ready(function() {
$('#example').DataTable();

} );


以下是使用JS在初始化函数中设置页面长度的示例:

  $('#example').dataTable( {
      "pageLength": 50
  } );

好的,我们来接近一下问题——这里有一个JS方法可以禁用第1列和第3列的排序,例如在初始化函数中添加以下代码:

 $('#example').dataTable( {
      "pageLength": 50,
      "aoColumnDefs": [ { "bSortable": false, "aTargets": [ 1, 3 ] }]
  } );

如果您的表格至少有四列,其中两列将无法进行排序。

现在,还有一种方法可以使用HTML5属性data-来设置表格的页面长度(显示顺序...),例如:

<table data-order='[[ 1, "asc" ]]' data-page-length='25'>
<thead>
    <tr>
        <th>Name</th>
        <th>Position</th>
        <th>Office</th>
        <th>Age</th>
        <th>Start date</th>
        <th data-class-name="priority">Salary</th>
    </tr>
</thead>

我的问题是:

如何使用HTML5的DATA属性使第1列和第3列不可排序?

我已经尝试了我能想到的每一个选项 - 这是我的最后一次尝试。

data-columnDefs="[{"bSortable": false, "Targets": [3]}]"



我在这里的原因是,我已经尝试了所有可能的资源,包括Datatable JS官方网站、Google和我最喜欢的StackOverflow,虽然其中有一些相关问题,但并不能解决这个具体的问题。

像往常一样,我感激所有帮助过我的兄弟姐妹们的任何帮助和努力!爱和和平与你们所有人同在!

1个回答

8
你离正确答案很近了。正确的data-属性如下所示:
<table id="example" class="display" data-column-defs='[{"sortable": false, "targets": [1,3]}]'>

根据手册的说明:

在使用data-*属性作为初始化选项时,需要考虑两个重要点:

  • jQuery会自动将连字符字符串转换为DataTables使用的驼峰式大小写(例如,对于pageLength,使用data-page-length)。
  • 如果在属性内使用字符串,则必须使用双引号(因此整个属性必须使用单引号)。这是jQuery处理JSON数据的另一种要求。
请参见此jsFiddle了解代码和演示。

感谢您的jsFiddle,先生!那么,可以说任何可以使用JS初始化的内容都可以使用HTML5进行初始化吗?据我从他们的文档中所理解的,是可以的 - 但我还需要尝试一切以确保。 - Alexey Shevelyov
1
从我理解来看,您可以使用data-属性传递任何选项,您是正确的。 - Gyrocode.com

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接