我正在尝试使我的DataTables函数通用,因此它适用于我网站上的任何表格。
我想根据“状态”列为我的行的背景着色,该列将出现在我的所有表格中。我现在唯一可以为行着色的方法是通过索引访问数据数组。我需要一种方法来按名称而不是数组索引来访问列。
下面的代码有效,根据agent.parameters
中的值添加“绿色”或“红色”类,但有没有办法可以在aData[6]
中查找值?
php at'https://www.example.com/table-data'返回一个数组:
aData['status']
jQuery初始化DataTables:
return array('data' => array(...., ..., ....));
另一种可能性是从服务器传回一些额外的数据,这样我就可以告诉fnRowCallback函数查找哪个列的状态。
如果我从服务器传回一个数组,如$('.ajax-data-table').each(function(index) {
var table = this.id;
// Create ajax table with datatables
$(this).dataTable({
processing: true,
ajax: {
url: 'https://www.example.com/table-data',
data: function (d) {
d.table = table;
}
},
deferRender: true,
responsive: true,
columnDefs: [
{targets: ['no-sort'], bSortable: false},
{targets: ['no-visible'], className: 'never'}
],
fnRowCallback: function(nRow, aData, iDisplayIndex) {
if (aData[6] == "W") $(nRow).addClass('working');
else if (aData[6] == "C") $(nRow).addClass('closed');
return nRow;
}
});
});
,我将如何访问fnRowCallback中的'额外'数据?
我已经设法确认我可以从服务器传回额外的数据,我可以看到使用fnInitComplete:
return array('data' => array(...., ..., ....), 'extra' => 6);
是否可以访问fnInitComplete: function(oSettings, json) {
console.log(json.extra);
}
中的json.extra数据?如果有办法,我可以使用fnRowCallback
?
答案 0 :(得分:0)
为了达到这个目的,我最终得到了一些hacky解决方法。
所以,对于那些寻找类似解决方案的人来说......
array('class' => 'myClass');
将以下内容添加到数据表javascript中,以查找具有键名为“class”的关联数组的任何列,并将该值添加到表行类中:
fnRowCallback:function(nRow,aData,iDisplayIndex){ var className = $ .map(aData,function(elem,index){ if(elem&& elem.class)返回elem.class; }); //将类添加到行 if(className.length> 0)$(nRow).addClass(className.join('')); 返回nRow; }