0

fnServerParams() のいくつかのパラメーターを更新すると、それらは DataTables プレゼンテーション レイヤーによって考慮されません。

たとえば、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;
},

次に、データのページ 2 が表示されることを期待しているのに、ページング ボタンがページ 1 に固定されたままになります。パラメータの並べ替えについても同じです。

編集: 初期化コードは次のとおりです。

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});
                                    });
                                }
                            }
                        },
);
4

1 に答える 1

0

私の質問に対する直接的な解決策はありませんが、DataTable の状態を保存することだったので、仕事をする bStateSave オプションに出くわしました。

于 2012-07-17T08:49:39.953 に答える