我检查了这个示例,以便能够在初始化表后进行搜索(服务器端处理):http://live.datatables.net/gelazeba/1/edit
我创建了这段代码
var urlI18n = '/i18n/' + '[(${#authentication.getPrincipal().getLang()})]' + '.json';
var url = "/search";
var tableConfig = {
"searching" : false,
'columns': [
{'data': 'id'},
{'data': 'buildDate'}
],
language: {
"url" : urlI18n
},
'bLengthChange': false, //hide 'show entries dropdown
'processing': true,
'serverSide': true,
'pagingType': 'simple_numbers',
'dom': 'tp',
};
var searchSamplingsResultsTable = $("#searchSamplingsResultsTable").DataTable(tableConfig);
$("#searchSamplingsResultsTable").on('click', function () {
tableConfig.ajax={
"url" : url
};
/*
tableConfig.ajax.data={
var current = $('#searchSamplingsResultsTable').DataTable();
d.page = (current != undefined) ? current.page.info().page : 0;
d.size = (current != undefined) ? current.page.info().length : 5;
d.sort = d.columns[d.order[0].column].data + ',' + d.order[0].dir;
d.search=d.search.value;
};
tableConfig.search = {
d.form = $("#searchSamplingsForm").serializeArray()
};
*/
searchSamplingsResultsTable.destroy();
searchSamplingsResultsTable = $('#example').DataTable( tableConfig );
});
我有一个搜索表单...用户可以按许多字段进行搜索,这就是我创建tableConfig.search的原因。
在tableConfig.ajax.data中,我尝试在前端和后端之间建立桥梁,它们不使用相同的名称参数。
如果我取消注释,则会收到Uncaught SyntaxError:意外的标识符