HTML5方法禁用特定列上的排序



您知道如何使用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 ] }]
  } );

如果你的表至少有5列,那么其中的2列将无法排序。

现在也有一种方法,例如设置页面长度,(显示顺序…)为一个表使用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>



My Question Is:

如何使例如列1和3不排序使用HTML5 DATA- ATTRIBUTE?

我已经尝试了所有我能想到的选择——这是我最后一次尝试

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



我在这里的事实表明,我已经尝试了我可能使用的所有资源,包括Datatable JS官方网站,谷歌和我最喜欢的一个StackOverflow,虽然有一些相关的问题,但无助于解决这个特定的问题。

和往常一样,我感谢你们每一个我的兄弟姐妹在这些问题上的帮助和努力!!爱,与你同在,我所有的人!!

你很接近了。正确的data-属性如下:

<table id="example" class="display" data-column-defs='[{"sortable": false, "targets": [1,3]}]'>

根据手册:

当使用data-*属性作为初始化选项时,有两点需要考虑:
  • jQuery将自动从虚线字符串转换为驼峰大小写表示法使用的数据表(例如使用data-page-length pageLength)。
  • 如果在属性内使用字符串,则必须在中使用双引号(因此整个属性在中使用单引号)。这是jQuery处理JSON数据的另一个要求。

最新更新