jquery datatables默认排序

Mik*_*ynn 54 javascript sorting jquery datatables

我试图将默认排序设置为我的jquery数据表中的第二列.它默认按索引0排序.我使用的是"aaSorting": [[ 1, "asc" ]]语法,但它突出显示了我在初始加载时不需要的列.如何在不突出显示列的情况下设置特定列的默认排序,就好像不涉及排序并且正在使用0索引列一样.

All*_*ine 55

有几种选择:

  1. 在初始化DataTables之后,删除TBODY中TD元素的排序类.

  2. 使用http://datatables.net/ref#bSortClasses禁用排序类.问题在于它将禁用用户排序请求的排序类 - 这可能是您想要的,也可能不是.

  3. 让您的服务器按所需的排序顺序输出表,并且不对表(aaSorting:[])应用默认排序.

  • 上面的建议#3为我做了.禁用排序和处理服务器端以获得初始结果要容易得多. (4认同)
  • 不.如果您想将此作为核心选项,则需要将其添加到DataTables - 这不是我在开发DataTables时遇到的要求,但它肯定是我想到的东西,如果它证明了成为一个受欢迎的请求,我肯定会添加它.在此之前,上述三个选项适用:-) (2认同)
  • @AllanJardine,我希望能够在dataTable()中设置默认排序列,以获得与我的默认数据集匹配的箭头指示符.我的所有处理都是服务器端的,当我返回在我想要的非第0列上排序的初始结果时,DataTables不指示带箭头的排序,直到用户与之交互. (2认同)

the*_*erm 47

这是实际的代码...

$(document).ready(function()
{
  var oTable = $('#myTable').dataTable();

  // Sort immediately with column 2 (at position 1 in the array (base 0). More could be sorted with additional array elements
  oTable.fnSort( [ [1,'asc'] ] );

  // And to sort another column descending (at position 2 in the array (base 0).
  oTable.fnSort( [ [2,'desc'] ] );
} );
Run Code Online (Sandbox Code Playgroud)

要不突出显示列,请像这样修改CSS:

table.dataTable tr.odd td.sorting_1 { background-color: transparent; }
table.dataTable tr.even td.sorting_1 { background-color: transparent; }
Run Code Online (Sandbox Code Playgroud)

  • +1你给我带来了很多痛苦和痛苦!! 这对我来说是最简单的解决方案.Datatables文档不是很解释和混淆.干杯. (2认同)

小智 15

您可以使用fnSort函数,请在此处查看详细信息:

http://datatables.net/api#fnSort