DataTables.net fnServerParams更改参数

时间:2012-07-16 18:24:47

标签: datatables

如果我更新了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});
                                    });
                                }
                            }
                        },
);

1 个答案:

答案 0 :(得分:0)

我没有直接解决我的问题,但是因为它是保存DataTable的状态,所以我来到了执行这项工作的bStateSave选项。