首页 > 解决方案 > JQuery DataTable 中的列排序——当通过 Javascript 提供数据时

问题描述

有一些类似于我正在尝试做的论坛问题,但我无法使其工作。

我们通过 javascript 将数据提取到 DataTable 中。我想使用不同的列设置数据顺序。

但是,当我尝试将列解释为字符串而不是整数时。

这是制作这张桌子的原因:

var securityTable =  $('#security-table').DataTable({
  "data": securitydata.guards,
  "columns": [
     {
       "className": 'details-control',
       "data": null,
       "orderable": false,
       //creates square for details row
       "render": function (d) {
               return '<i class="fa fa-plus-square" aria-hidden="true"></span>';
       },
       "defaultContent": ''
     },
     // is sorting by "sort" but is seeing numbers as alphebetical not numeric
     { "data": {
            _:    "date.display",
            sort: "date.date_order"
        } },
     { "data": "place" },
     { "data": {
            _:    "shot.display",
            sort: "shot.shot_order"
        } },
  ],
  "paging": false,
  "searching": false
});

这是数据的样子:

var securitydata = {
"guards": [
{
"date": {
"display": "April 15, 2011",
"date_order": 1
},
"reported": "Yes",
"place": "Chicago, auto parts yard",
"shot": {
"display": "No one hit",
"shot_order": 24
},
"blurb": "A 52-year-old guard at an auto parts lot shot at a vehicle he said was coming toward him. The man inside the vehicle, accused of stealing equipment from the lot, drove away and was not reported injured.",
"link": ""
},

这是我们用来寻求帮助的

标签: javascriptdatatables

解决方案


使用相同的示例,但使用排序

$(document).ready(function() {
    $('#example').DataTable( {
        order: [[ 2, "desc" ]],
        ajax: "data/orthogonal.txt",
        columns: [
            { data: "name" },
            { data: "position" },
            { data: "office" },
            { data: "extn" },
            { data: {
                _:    "start_date.display",
                sort: "start_date.timestamp"
            } },
            { data: "salary" }
        ]
    } );
} );

在这里订购链接


推荐阅读