dataTables并在IE8中按日期排序

时间:2013-03-15 16:29:19

标签: sorting datatables

dataTables排序日期字段(具有{"sType":"date"}时遇到一些问题。null排序类型(只是对数据进行排序,就像它是一个普通字符串一样)在IE8中运行正常。

适用于IE 9& 10,以及最新版本的Chrome,Safari,Firefox。此应用程序未在移动客户端上使用,因此我没有在那里进行测试。

我需要研究一下IE8的特殊之处吗?在IE8中的JavaScript控制台上没有错误,所以我对于在哪里看起来有点难过。检查dataTables文档并搜索SO,但尚未找到任何IE8特定的内容。

更新

这是我用来初始化数据表的JavaScript。

//sprv results table
$("#sprv_report_table").livequery(function(){$(this).dataTable({
  "aoColumns": [{"sType":"date"},null,null,null,null,{"sType":"date"}],
  "iDisplayLength": 10, 
  "sPaginationType": "full_numbers"
});});1

由于数据表代码确实应用于表,并且我可以对其他列进行排序,我没有任何理由相信这个事件没有被触发 - 似乎很明显它是由浏览器。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

$(this).dataTable({
  "aoColumns": [{
    mData: function(data, type) {
       var realDate = Date.parse(data); //data will be a string
       switch(type) {
         case 'display':
            return realDate.toString('MM/dd/yyyy'); //note that this line needs to be implemented by you (however you format dates)
         default:
            return realDate;
       }
    }
   },null,null,null,null,{"sType":"date"}],
  "iDisplayLength": 10, 
  "sPaginationType": "full_numbers"
});

请参阅此处的mData用法参考:http://datatables.net/ref

  

整数 - 被视为数据源的数组索引。这是DataTables使用的默认值(每列增量增加)。

     

string - 从数据源中读取对象属性。请注意,您可以使用Javascript点分表示法从数据源中读取深层属性/数组。

     

null - sDefaultContent选项将用于单元格(默认为null,因此您需要指定所需的默认内容 - 通常为空字符串)。这对生成的列很有用,例如编辑/删除操作列。

     

function - 每当DataTables需要设置或获取列中单元格的数据时,将执行给定的函数。该函数有三个参数:   {array | object}行的数据源   {string}请求的类型调用数据 - 在设置数据时将设置为'set',或在收集数据时'显示','类型','排序'或未定义。请注意,当为DataTables类型提供未定义时,期望获取对象的原始数据

     

{*}第二个参数“设置”时要设置的数据。

     

当'set'是调用类型时,函数的返回值不是必需的,否则返回值将用于请求的数据。