即使在columndefs中指定了orderable false,jquery datatable也会对列进行排序

即使在columndefs中指定了orderable false,jquery datatable也会对列进行排序,jquery,datatables,Jquery,Datatables,我在JQUERY Datatable插件中遇到了一个奇怪的问题。我在每一行中都使用了评级功能。第一个单元格实际上持有用于该目的的控件 这是第一个单元格的标记 <input class="row-check" type="checkbox"><span class="fa-stack fa-lg star-rating"> <i class="fa fa-star goldstar fa-stack-2x"></i> <strong clas

我在JQUERY Datatable插件中遇到了一个奇怪的问题。我在每一行中都使用了评级功能。第一个单元格实际上持有用于该目的的控件

这是第一个单元格的标记

<input class="row-check" type="checkbox"><span class="fa-stack fa-lg star-rating">
<i class="fa fa-star goldstar  fa-stack-2x"></i>
<strong class="fa-stack-1x inside-text">4</strong> </span>

4
下面是Im使用的Datatable初始化代码

    var myTable = $("#tbl_main").dataTable({
    "dom": "<'tableinfobar'i><'tablesearchbox'f><'tablestarfilter'><'tablestarreset'><'tablebody't>S<'tablelength'l><'tablepaging'p>",
    "ordering": true,
    "columnDefs": [{ "targets": [0, 6], "searchable": false, "orderable": false }, 
{ "targets": [ 1, 3, 4, 5,  7, 8, 9], "orderable": false }, 
{ "targets": [2], "type": "html-num", "orderable": true}],
    "lengthMenu": [
        [10, 20, 50, 100, 500, -1],
        [10, 20, 50, 100, 500, "All"]
    ],
    "language": {
        "search": "Quick Search _INPUT_",
        "zeroRecords": "No assessments found with that search criteria.",
        "info": "Showing _START_ to _END_ of _TOTAL_ Assessments",
        "infoFiltered": " - filtered from _MAX_ entries",
        "lengthMenu": "Show _MENU_ Entries"
    }
}).show();
var myTable=$(“#tbl_main”).dataTable({
“dom”:“S”,
“排序”:正确,
“columnDefs”:[{“targets”:[0,6],“searchable”:false,“orderable”:false},
{“targets”:[1,3,4,5,7,8,9],“orderable”:false},
{“targets”:[2],“type”:“html num”,“orderable”:true}],
“长度菜单”:[
[10, 20, 50, 100, 500, -1],
[10、20、50、100、500,“全部”]
],
“语言”:{
“搜索”:“快速搜索输入”,
“zeroRecords”:“未找到符合该搜索条件的评估。”,
“信息”:“显示总评估的开始到结束”,
“infoFiltered”:“-从_MAX_uu条目中筛选”,
“长度菜单”:“显示菜单项”
}
}).show();
正如您在代码中看到的,我禁用了columndefs中第一列的排序。但是,如果第一个单元格中的某些值strong标记(在这种情况下
4
),则整个表将根据该值进行降序排序。表示如果任何其他行在第一个单元格中的strong标记内没有评级值,则具有某些值的行将显示为整个表中的最后一行


我在这里做错了什么。

使用选项指定要排序的替代列。默认情况下,它使用第一列,即使您禁用了对该列的排序。

我只是为我的问题指定了一个详细的答案。正如Gyrocode提到的,我解决了这个问题,因为我指定了一个额外的选项

order:[] //in the datatable initialization code. 

这将禁用自动排序第一列,以防其他任何人出现相同问题:
经过进一步的研究,看起来这实际上是预期的行为,因为默认情况下,表是按第一列排序的。因此,该指示器显示该表是按该列排序的。为了删除指示符,您需要告诉表对不同的列进行默认排序,或者根本不进行列排序。在我的例子中,我希望我的表的排序方式与从服务器发送数据的方式相同,因此我只是将“”顺序“:[]作为表的一个选项,以禁用默认排序。

谢谢,它工作得很好,有相同的问题
我希望我的表按照从服务器发送数据的相同方式排序
听到这是一个有用的消息感觉很棒:)