2

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

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

4

1 回答 1

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 使用的默认值(每列递增)。

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

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

function - 只要 DataTables 需要设置或获取列中单元格的数据,就会执行给定的函数。该函数接受三个参数: {array|object} 行的数据源 {string} 请求的类型调用数据 - 当设置数据或 'filter', 'display', 'type', 'sort' 时这将是 'set' ' 或在收集数据时未定义。请注意,当为 DataTables 期望获取对象的原始数据的类型给出未定义时

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

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

于 2013-03-15T18:02:19.903 回答