我在脚本的列上有数据表和过滤器,当按正文(DOM)生成表时,它的工作原理很好,但又很麻烦。当我想通过ajax(服务器端选项)生成表时,它不起作用。如何在列上使用服务器端和过滤器?我需要提示如何从选择过滤器通过ajax获取查询。
initComplete: function () {
this.api().columns('.select-filter').every( function () {
var column = this;
var name = column.header().innerHTML;
var col = $('<div class=\"filters\"></div>').appendTo( \".filters-group\" );
var select = $('<select class=\'form-control select2\'><option value=\"\">Wszystko</option></select>')
.on( 'change', function () {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val()
);
column
.search( val ? '^'+val+'$' : '', true, false )
.draw();
} );
column
.data()
.unique()
.sort()
.each(function(d, j) {
var val = $.fn.dataTable.util.escapeRegex(d);
if (column.search() === \"^\" + val + \"$\") {
select.append(
'<option value=\"' + d + '\" selected=\"selected\">' + d + \"</option>\"
);
} else {
select.append('<option value=\"' + d + '\">' + d + \"</option>\");
}
});
var label = $('<label class=\'filters-label\'>'+name+'</label>');
var form = $('<div class=\'form-group\'></div>');
col.append(form);
form.append(label);
form.append(select);
} );
},