数据表不会创建某些行
有一个回调不创建特定的行?
这是我的数据表对象:
$('#table').DataTable({ dom: "t", autoWidth: false, serverSide: true, aaSorting: [[8, 'desc']], beforeCreatedRow: function(row, data) { if ( data.field == "OFF" ) { // DON'T CREATE THIS ROW } }, rowId: 'id', lengthChange: false, iDisplayLength: 10, columns: [ {data: "column1"}, {data: "column2"}, {data: "column3"}, {data: "column4"}, {data: "column5"}, {data: "column6"} ] });
我仅使用beforeCreatedRow
事件作为示例。 我不确定这个事件是否存在。 它只是告诉你我需要什么。
因此,如果data.field
值为OFF,我可以看到我不需要创建行
我不会用无用的行填充DOM。 不要隐藏它们,只需跳过它们:
ajax: { url: 'some/url/', dataSrc: function(d) { var data = d.filter(function(row) { if (row.field != "OFF") return row }) return data } }
您可以通过挂钩到xhr.dt
事件来删除xhr.dt
之前不需要的行:
$('#example').on('xhr.dt', function(e, settings, json, xhr ) { json.data = json.data.filter(function(row) { if (row.field != 'OFF') return row }) })
在这里看一个演示 – > http://jsfiddle.net/g4h7950t/
注意:上面的示例使用的是{ data: [..] }
src。 简直就是我手边的东西。
您可以使用类似这样的rowCallback
方法
var table = $('#table').DataTable({ "rowCallback": function(row, data, index){ if ( row.field == "OFF" ) { jQuery(row).hide(); } } });
这里有更多细节