如何将多个数据放在一个数据表列中?
Posted
技术标签:
【中文标题】如何将多个数据放在一个数据表列中?【英文标题】:How to put multiple data in a datatable column? 【发布时间】:2013-02-16 22:44:24 【问题描述】:我使用Datatables 来表示来自 JSON 的数据。 我的 JSON 如下:
["name": "John Doe", "email": "john@gmail.com", "address" : "blah"]
在数据表中,我可以使用以下方法在 3 个差异列中轻松显示这 3 条信息:
columnDefs = [
"mData": "name", "aTargets":[0] ,
"mData": "email", "aTargets":[1] ,
"mData": "address", "aTargets":[2]
];
但问题是我想在第一列显示“姓名”和“电子邮件”,然后在第二列显示“地址”。 我怎样才能做到这一点?请指导。
【问题讨论】:
见这里datatables.net/forums/discussion/13321/… @PSR 感谢您的指导。 +1 这个也有帮助:***.com/questions/19777075/… 【参考方案1】:为了更短,你可以这样写
"aoColumns": [
"mData": "i_id" ,
"mData": "i_name" ,
"mData": function (data, type, dataToSet)
return data.i_id + "<br/>" + data.i_name;
],
结果
【讨论】:
【参考方案2】:您可以使用函数来获取和打印所需的任何数据,而不是将姓名或电子邮件放在列定义的第一列中。有关详细信息,请参阅此页面上的 mData 部分:https://datatables.net/usage/columns。在下面的示例中,我使用了 aoColumns,因为我以这种方式测试了我的答案;但是在引用的链接中,他们使用了 aoColumnDefs 并详细说明了 type 和 dataToSet 字段。无论您使用 aoColumns 还是 aoColumnDefs,这种方法都有望帮助任何阅读此答案的人。
例如,使用 aoColumns 而不是 aoColumnDefs:
aoColumns = [
"mData": getNameAndEmail ,
"mData": "address"
];
然后在 javascript 范围内定义 getNameAndEmail 函数,该函数接受三个参数:传回的数据,对数据的操作类型,如果类型为“设置”,则设置数据。
function getNameAndEmail(data, type, dataToSet)
return data.name + "<br>" + data.email;
【讨论】:
【参考方案3】:columnDefs = [
data: name : "name", email : "email", address : "address",
mRender : function(data, type, full)
return data.name+' '+data.email+' '+data.address;
];
以上代码可以在一个数据表的一列中渲染多个数据。
【讨论】:
【参考方案4】:[您可以使用如下语法:
它对我有用。]"columnDefs":[
"targets":0,//column index
"data":"first_name",
"render":function(data,type,row)
return data+' '+row['last_name'];
]
[谢谢]
【讨论】:
我正在使用服务器端数据表,所以其他答案对我不起作用。只有你的回答对我有帮助。谢谢。以上是关于如何将多个数据放在一个数据表列中?的主要内容,如果未能解决你的问题,请参考以下文章
在 WordPress 页面编辑器中,如何添加 HTML 以将短代码提取的数据放在 2 列中?