我正在努力掌握jQuery数据表(通过CDN的v1.10.1)以及当前版本中使用的约定。各种文档令人困惑/缺乏完整的'最好的例子,最坏的冲突。
请解释有关定义字段内容的当前(v1.10.1)最佳做法。 我看到很多关于列/ mData / mRender / mDataProp的信息,其中包括每个人的意思和/或每个人应该使用的时间超载(参见下面的研究'部分的示例) 。
其次,我对于使用日期和"设置" /"显示" /"过滤" /"排序& #34; (假设这是要采取的路线,使用mData / mRender)?
示例
编辑:这是一个小提琴中的一些数据的例子:
var massData = [
{ "Column1": "test1", "Timestamp": "Sun Jul 27 2014 14:42:20 GMT+0100 (GMT Standard Time)", "Date": "18/10/2012" },
{ "Column1": "test2", "Timestamp": "Mon Jul 28 2014 14:42:20 GMT+0100 (GMT Standard Time)", "Date": "18/10/2016" },
{ "Column1": "test3", "Timestamp": "Wed Jul 22 2014 14:42:20 GMT+0100 (GMT Standard Time)", "Date": "18/01/2012" }
];
var keys = ["Column1", "Timestamp", "Date"];
var columns = [];
for (var keyIndex = 0; keyIndex < keys.length; keyIndex++) {
columns.push({
"title": keys[keyIndex],
"data": keys[keyIndex],
"defaultContent": ""
});
}
$('#demo').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>');
$('#example').dataTable({
"data": massData,
"deferRender": true,
"scrollY": 400,
"scrollX": true,
"columns": columns
});
研究
我看到this question有代码使用mRender,虽然我的理解是过滤/排序会使用实际数据
我看到this example和this documentation使用aoColumnDefs,aTargets和mData ..?
This question回复&#34;使用呈现的文本&#34;进行过滤,但使用aoColumnDefs,mDataProp和&#39; renderDate()&#39;功能,但不使用mRender
其他文档建议弃用fnRender / bUseRendered
答案 0 :(得分:2)
首先,您正在查看以前版本的示例(显然基于匈牙利表示法)所以任何使用mData的示例现在都可以使用,但是一旦删除旧版支持就可能无法使用。虽然它们可以让您了解方向,但在旧API中查找方法然后期望它们按1.10原样工作是很危险的。有一个version converter document有助于理解新旧之间的等价物。
我的偏好是使用this example使用“columns”定义来轻松指定数据字段。您还可以快速轻松地为每个列定义内容,例如可搜索,标题,可见等。请参阅其他API。
因此,我的代码中的数据表示例如下所示:
$('#example').DataTable( {
data: data,
columns: [
{ data: 'keyoffield1', title:'name title', visible:'false' },
{ data: 'keyoffield2', title:'position title' },
{ data: 'keyoffield3', title:'salary title here' },
{ data: 'keyoffield4', title:'office title here' }
]
} );
至于排序,它设置为您开箱即可识别日期字段,如您在示例中所示(单击标题以更改排序)但是,如果要设置默认排序,例如asc, desc等,这很容易用columns.sort完成,你会在API中看到。有一个simple plugin可以增强对字段的排序,这些字段可能无法以构建DataTables的方式进行格式化。
fnRender走了,closest equivalents are explained here。如果你忽略这些例子以及删除它时发生的抱怨,很容易看出Allan如何继续使用像column.render这样的新方法。