我遇到了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>
这是使用
的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();
正如您在代码中看到的,我禁用了columndef中第一列的排序。但是,如果第一个单元格中的某些值强标记 (在这种情况下为<strong class="fa-stack-1x inside-text">4</strong>
),整个表格将根据该值进行降序排序。表示如果第一个单元格中强标记内的任何其他行没有评级值,则具有某些值的行将显示为整个表格中的最后一行。
我在这里做错了什么。
答案 0 :(得分:3)
使用order
选项指定要排序的备用列。默认情况下,即使您禁用该列的排序,它也会使用第一列。
答案 1 :(得分:2)
我只是为我的问题指定详细的答案。正如Gyrocode所说,我解决了这个问题,因为我指定了另一个选项
order:[] //in the datatable initialization code.
这会禁用自动排序第一列
答案 2 :(得分:0)
如果其他人遇到同样的问题: 经过一些更多的研究后,看起来这实际上是预期的行为,因为默认情况下,表在第一列上排序。因此,指示器会向您显示该表是按该列排序的。要删除指标,您需要告诉表格在不同的列上进行默认排序,或者根本没有列。在我的情况下,我希望我的表的排序方式与从服务器发送数据的方式相同,所以我只是通过&#34; order&#34;:[] 作为表的选项,禁用默认排序。