如果我更新了fnServerParams()中的一些参数,那么DataTables表示层不会考虑它们吗?
E.g。我们假设iDisplayStart = 10且iDisplayEnd = 20是正确的值
'fnServerParams': function (aoData) {
// Find i such as aoData[i]['name'] == 'iDisplayStart'
aoData[i]['value'] = 10;
// Find j such as aoData[j]['name'] == 'iDisplayEnd'
aoData[j]['value'] = 20;
},
然后分页按钮仍然停留在第1页,而我希望它显示我的数据的第2页。 排序参数也一样。
编辑:初始化代码如下:
var oTable = $('#WEB_TABLE_ID').dataTable(
{'aaSorting': [[0, 'desc']],
'bProcessing': true,
'bServerSide': true,
'sAjaxSource': '../subscription/search_list.php',
'sServerMethod': 'POST',
'sPaginationType': 'full_numbers',
'iDisplayLength': 100, // Default number of rows to display
'oLanguage': {'sSearch': "Search all",
'sLengthMenu': 'Display <select> \
<option value="10">10</option> \
<option value="100">100</option> \
<option value="500">500</option> \
</select> entries',},
'bAutoWidth': false,
'sDom': "<'row'<'span8'l><'top'i>r>t<'row'<'bottom'i><'span8'p>>"
'fnServerParams': function (aoData) {
var sEcho = aoData[0].value;
if ('1' == sEcho) {
var params = <?=json_encode(Session::read(${CTL_DATAID}))?>;
if (! $.isEmptyObject(params)) {
aoData.length = 0; // empty array
$.each(params, function(name, value) {
aoData.push({'name': name, 'value': value});
});
}
}
},
);
答案 0 :(得分:0)
我没有直接解决我的问题,但是因为它是保存DataTable的状态,所以我来到了执行这项工作的bStateSave选项。