为了在表格中显示我的数据,我使用dataTable插件。由于我有大量数据,我使用服务器端处理。我的问题是,我在获得的JSON中有一些数据字段,我想在表格中显示之前更改。
示例:我得到的值是,某些设备是否可用。这在数据库中写为“”,0或1,用于显示它我想将这些值转换为“是”或“否”或“N / A”。
要初始化表,我使用以下代码:
table = $('#table').DataTable({
"ajax": "myurl",
"sPaginationType": "full_numbers",
"sAjaxDataProp":"",
"deferRender": true,
columns: [
{data: 'attributes.0.value'},
{data:'attributes.1.value'},
{data:'attributes.2.value'},
{data:'attributes.3.value'},
{data:'attributes.4.value'}],
});
直接在数据数组中绑定conerting函数不起作用(如
{data: convert(attributes.0.value)},
datatable插件有一些参数,我试过,但我不确定,他们是否可以解决我的问题。这是插件文档中的一个示例:
$('#example').dataTable( {
"ajax": {
"url": "data.json",
"data": function ( d ) {
d.extra_search = $('#extra').val();
}
}
});
我可以使用数据参数来解决我的问题(当我尝试这个时,d总是空的)或者在将它们集成到表中之前还有其他可能性来改变我的值吗?
答案 0 :(得分:4)
你可以在ajax.dataSrc
函数中预处理JSON,但由于你真的需要修改值的显示方式,我会选择column rendering:
columns: [
{ data: 'attributes.0.value',
render: function(data, type, row) {
switch(data) {
case '0' : return 'No'; break;
case '1' : return 'Yes'; break;
default : return 'N/A'; break;
}
},
{ data: 'attributes.1.value' },
{ data: 'attributes.2.value' },
{ data: 'attributes.3.value' },
{ data: 'attributes.4.value' }
]
将上述render
方法用于您需要转换的每个列值。