我正在使用每个类名自定义过滤。我的页面上也有两个不同的dataTable,但似乎我添加的过滤器适用于两个dataTables。我想说明它实际应用于哪一个。
$.fn.dataTableExt.afnFiltering.push(function (oSettings, aData, iDataIndex) {
var myRowClasses = oSettings.aoData[iDataIndex].nTr.className.split(" ");
if($("#subplayers").is(":checked")) {
return myRowClasses.indexOf('insub') > -1;
} else {
return myRowClasses.indexOf('allplayers') > -1;
}
});
此过滤器适用于两个表(带有tabledata
的表1和带有tabledata2
的表2)。如何修改此代码才能使其仅在表1上工作?
表格代码:
var table = $('#tabledata').DataTable({
'fnCreatedRow': function (nRow, aData, iDataIndex) {
$(nRow).attr('id', 'col' + iDataIndex+'_filter');
if (initatedTable){
$(nRow).addClass("insub");
$(nRow).addClass("allplayers");
}
}
});
var table2 = $('#tabledata2').DataTable({
'fnCreatedRow': function (nRow, aData, iDataIndex) {
$(nRow).attr('id', 'col' + iDataIndex+'_filter');
}
});
答案 0 :(得分:4)
您需要像这样添加if检查过滤器功能;
$.fn.dataTableExt.afnFiltering.push(function (oSettings, aData, iDataIndex) {
if (settings.nTable.id === 'tabledata') {
// filter example
}
else {
// ...
}
});
在这个例子中,if (settings.nTable.id === 'tabledata')
行可以解决问题。