DataTables - 返回 ajax 数据的格式
DataTables - Format returning ajax data
我正在 DataTables.net 的 this example 上工作,但我已经进行了修改,以便它可以与我对 API.
的 ajax 调用一起使用
我的问题是我的 API returns DateTime 值是这样的...
创建时间=2015-02-13T00:00:00
我需要能够将其转换为只是没有时间的日期 table(希望不更改 API)。我已经尝试了我所知道的一切尝试。在这种高级 javascript 方面,我仍然是初学者。我只是想做一个简单的子字符串,但我认为这行不通。好吧,至少我是如何尝试的。
感谢您的帮助!
DataTables v1.10.5
Jquery v1.11.2 (因需要支持IE8)
原问题代码:
$(document).ready(function () {
var table = $('#AllHuddleRecords').DataTable({
"ajax": "../api/huddle/posts",
"columns": [
{
"className": 'details-control',
"orderable": false,
"data": null,
"defaultContent": ''
},
{ "data" : "EmpName" },
{ "data": "Created" },
{ "data" : "PriorityName" },
{ "data" : "TopicName" }
]
});
感谢cmxl的指导...这是工作代码...
var table = $('#AllHuddleRecords').DataTable({
"ajax": "../api/huddle/posts",
"columns": [
{
"className": 'details-control',
"orderable": false,
"data": null,
"defaultContent": ''
},
{ "data" : "EmpName" },
{ "data": "Created" },
{ "data" : "PriorityName" },
{ "data" : "TopicName" }
],
"columnDefs": [
{
"render" : function (data, type, row) {
return new Date(data).toLocaleString();
},
"targets": 2
}
]
});
您可以挂接到列渲染事件。请参阅此处的文档:
https://datatables.net/examples/advanced_init/column_render.html
$(document).ready(function() {
$('#example').dataTable( {
"columnDefs": [
{
// The `data` parameter refers to the data for the cell (defined by the
// `data` option, which defaults to the column being worked with, in
// this case `data: 0`.
"render": function ( data, type, row ) {
return data.slice(0, data.indexOf('T'));
},
"targets": 0
},
{ "visible": false, "targets": [ 3 ] }
]
} );
} );
或者,如果您想将字符串解析为日期,您可以在此处参考此答案:
Converting string to date in js
//...
"render": function ( data, type, row ) {
return new Date(data).toString();
}
//...
在这里您可以更深入地了解 Javascript 中的 Date 对象:
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date
是否可以在将数据发送到数据 table 之前对数据进行一些预处理,例如,如果您要将以下数据插入数据 table,请使用 Date.parse() 在您的数据的每个元素上转换为所需的格式?
var ajaxData = {
"data": [{
"EmpName": "Bob",
"Created": "2015-02-13T00:00:00",
"PriorityName": "Priority1",
"TopicName": "Topic1"
}]
};
$(ajaxData.data).each(function() {
var dateMillis = new Date(this.Created);
this.Created = dateMillis.getMonth() + "/" + dateMillis.getDay() + "/" + dateMillis.getFullYear();
});
请注意,如果您想对日期列进行排序,那么解决方案很可能是预处理数据并使用 Date.parse() 将日期转换为毫秒,然后使用渲染将日期转换为cmxl 建议的可读格式。祝你好运!
我正在 DataTables.net 的 this example 上工作,但我已经进行了修改,以便它可以与我对 API.
的 ajax 调用一起使用我的问题是我的 API returns DateTime 值是这样的...
创建时间=2015-02-13T00:00:00
我需要能够将其转换为只是没有时间的日期 table(希望不更改 API)。我已经尝试了我所知道的一切尝试。在这种高级 javascript 方面,我仍然是初学者。我只是想做一个简单的子字符串,但我认为这行不通。好吧,至少我是如何尝试的。
感谢您的帮助!
DataTables v1.10.5
Jquery v1.11.2 (因需要支持IE8)
原问题代码:
$(document).ready(function () {
var table = $('#AllHuddleRecords').DataTable({
"ajax": "../api/huddle/posts",
"columns": [
{
"className": 'details-control',
"orderable": false,
"data": null,
"defaultContent": ''
},
{ "data" : "EmpName" },
{ "data": "Created" },
{ "data" : "PriorityName" },
{ "data" : "TopicName" }
]
});
感谢cmxl的指导...这是工作代码...
var table = $('#AllHuddleRecords').DataTable({
"ajax": "../api/huddle/posts",
"columns": [
{
"className": 'details-control',
"orderable": false,
"data": null,
"defaultContent": ''
},
{ "data" : "EmpName" },
{ "data": "Created" },
{ "data" : "PriorityName" },
{ "data" : "TopicName" }
],
"columnDefs": [
{
"render" : function (data, type, row) {
return new Date(data).toLocaleString();
},
"targets": 2
}
]
});
您可以挂接到列渲染事件。请参阅此处的文档: https://datatables.net/examples/advanced_init/column_render.html
$(document).ready(function() {
$('#example').dataTable( {
"columnDefs": [
{
// The `data` parameter refers to the data for the cell (defined by the
// `data` option, which defaults to the column being worked with, in
// this case `data: 0`.
"render": function ( data, type, row ) {
return data.slice(0, data.indexOf('T'));
},
"targets": 0
},
{ "visible": false, "targets": [ 3 ] }
]
} );
} );
或者,如果您想将字符串解析为日期,您可以在此处参考此答案: Converting string to date in js
//...
"render": function ( data, type, row ) {
return new Date(data).toString();
}
//...
在这里您可以更深入地了解 Javascript 中的 Date 对象: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date
是否可以在将数据发送到数据 table 之前对数据进行一些预处理,例如,如果您要将以下数据插入数据 table,请使用 Date.parse() 在您的数据的每个元素上转换为所需的格式?
var ajaxData = {
"data": [{
"EmpName": "Bob",
"Created": "2015-02-13T00:00:00",
"PriorityName": "Priority1",
"TopicName": "Topic1"
}]
};
$(ajaxData.data).each(function() {
var dateMillis = new Date(this.Created);
this.Created = dateMillis.getMonth() + "/" + dateMillis.getDay() + "/" + dateMillis.getFullYear();
});
请注意,如果您想对日期列进行排序,那么解决方案很可能是预处理数据并使用 Date.parse() 将日期转换为毫秒,然后使用渲染将日期转换为cmxl 建议的可读格式。祝你好运!