当未按数据表排序时,我可以显示数据已排序吗

Posted

技术标签:

【中文标题】当未按数据表排序时,我可以显示数据已排序吗【英文标题】:Can I show data is sorted when not sorted by dataTables 【发布时间】:2014-06-30 02:18:36 【问题描述】:

我正在使用https://datatables.net/ jQuery 插件来显示客户端表格数据。

我的表的数据是预先排序的,所以我不希望 dataTables 进行第一次排序的开销。我已将 aaSorting 设置为 [] 以便 dataTables 不对数据进行排序。

我的问题是我希望标题样式显示数据按哪一列排序以及该列何时排序以切换排序顺序。

我尝试了以下作弊,它显示了我想要的方式,但我必须单击两次才能将搜索更改为降序。

dataTableOptions.fnInitComplete = function (oSettings, json) 
    $table.find('th:first').addClass('sorting_asc');
;

任何建议将不胜感激。

谢谢。

【问题讨论】:

【参考方案1】:

您可以使用asSort 将目标列的默认排序方向设置为“desc”,如文档中的here 所述。这将在第一次单击时按降序对表格进行排序。您仍然需要在初始化时将 th:first 的类设置为 sorting_asc

// Using aoColumns
$(document).ready( function() 
  $('#example').dataTable( 
    "aaSorting": [],
    "aoColumns": [
       "asSorting": [ "desc", "asc" ] , // assumes you are targeting column 1
      ...// other columns
    ],
    ...// other configuration
   );
 );

【讨论】:

非常感谢。我已经尝试过了,一旦我设置了它,它就根本没有排序,尽管它确实正确显示了图标。我将创建一个示例并发布一个链接,否则将很难解释。 我用我的示例创建了一个 jsFiddle - jsfiddle.net/259r8/1。 javascript 的第一部分是您在上面发布的内容。它显示正确,但单击列标题不会对数据进行排序。注释掉的 JavaScript 不会显示数据已排序但可以排序。我需要两者,即数据在第一次加载时没有排序(初始排序在服务器端完成),它显示它已排序,您仍然可以单击列标题进行排序。 非常感谢。非常感激。新的小提琴是jsfiddle.net/259r8/4

以上是关于当未按数据表排序时,我可以显示数据已排序吗的主要内容,如果未能解决你的问题,请参考以下文章

Firebase iOS 查询未按预期排序

数据表未按 dd/MM/yyyy 格式的日期排序 Angular

经典 asp 查询未按连接到 Microsoft Access 数据库的用户名排序

PrimeNg 表未按角度对类数组进行排序

如何从数据网格中获取已排序的项目源

可视化桶排序