Lit*_*ski 9 javascript json jquery-datatables
我正在使用Datatables来表示来自JSON的数据.我的JSON如下:
[{"name": "John Doe", "email": "john@gmail.com", "address" : "blah"}]
Run Code Online (Sandbox Code Playgroud)
在Datatables中,我可以使用以下内容轻松地在3个diff列中显示这3个信息:
columnDefs = [
{ "mData": "name", "aTargets":[0] },
{ "mData": "email", "aTargets":[1] },
{ "mData": "address", "aTargets":[2] }
];
Run Code Online (Sandbox Code Playgroud)
但问题是我想在第1列显示"name"和"email",然后在第2列显示"address".我怎样才能做到这一点?请指导.
小智 13
您可以使用函数来获取和打印所需的任何数据,而不是将名称或电子邮件放在列定义的第一列中.有关更多详细信息,请参阅此页面上的mData部分:https://datatables.net/usage/columns .在我下面的例子中,我使用aoColumns,因为我以这种方式测试了我的答案; 但在引用的链接中,他们使用了aColumnDefs并提供了类型和dataToSet字段的详细说明.无论您使用的是aoColumns还是aoColumnDefs,这种方法都应该有助于任何人阅读此答案.
例如,使用aoColumns而不是aoColumnDefs:
aoColumns = [
{ "mData": getNameAndEmail },
{ "mData": "address" }
];
Run Code Online (Sandbox Code Playgroud)
然后在JavaScript范围中定义getNameAndEmail函数,它接受三个参数:传回的数据,对数据的操作类型,以及类型是否"设置"然后是要设置的数据.
function getNameAndEmail(data, type, dataToSet) {
return data.name + "<br>" + data.email;
}
Run Code Online (Sandbox Code Playgroud)
Sru*_*Suk 10
为了使它更短,你可以这样写
"aoColumns": [
{ "mData": "i_id" },
{ "mData": "i_name" },
{ "mData": function (data, type, dataToSet) {
return data.i_id + "<br/>" + data.i_name;
}}
],
Run Code Online (Sandbox Code Playgroud)
结果
columnDefs = [
{
data: {name : "name", email : "email", address : "address"},
mRender : function(data, type, full) {
return data.name+' '+data.email+' '+data.address;
}
}
];
Run Code Online (Sandbox Code Playgroud)
上面的代码可以在数据表的列中呈现多个数据.
小智 5
[你可以使用这样的语法:
它对我有用。]
"columnDefs":[{
"targets":0,//column index
"data":"first_name",
"render":function(data,type,row){
return data+' '+row['last_name'];
}
}]
[谢谢]
| 归档时间: |
|
| 查看次数: |
28957 次 |
| 最近记录: |