Серверная сортировка Ajax, iSortCol_0 рассматривает hiddend столбцы? - PullRequest
5 голосов
/ 27 февраля 2012

Я не знаю, является ли это ошибкой, но у меня есть дата + ajax со следующими параметрами:

     "bServerSide": true,
     "sAjaxSource": url,
     "fnServerData": function (sSource, aoData, fnCallback) {
        jQuery.ajax({
           "dataType": 'json',
           "type": "POST",
           "url": sSource,
           "data": aoData,
           "success": fnCallback
        });
     },
     "sPaginationType": "bootstrap",
     "aoColumns": [
                    { "sName": "Id", "sType": 'numeric', "bVisible": false },
                    { "sName": "PostingDate", "sType": 'Date' },
                    { "sName": "Userid", "sType": 'string', "bVisible": false },
                    { "sName": "DisplayName" },
                    { "sName": "Description" },
                    { "sName": "MainTag" },
                    { "sName": "Tags" },
                    { "sName": "HowMuch" }
                ]

У меня есть форма, где пользователи могут добавлять строки, и когда они отправляют ее, я добавляюданные в базу данных с помощью вызова ajax, а затем вызова: jQuery ('# mydatatable'). dataTable (). fnReloadAjax ();

Когда пользователь нажимает для сортировки таблицы по столбцу "MainTag", мой сервер-сторона ajax получает:

iSortCol_0 4
iSortingCols 1

И все bSortable_ # там, правильно от 0 до 7 (у меня есть 8 столбцов, как показано выше.

Теперь моя проблема в том, что iSortCol_0 вводит в заблуждение, так какскрытые столбцы, если у меня нет возможности узнать, какие столбцы скрыты на сервере, я неверно истолковываю сортировку iSortCol_0 = 4 по неправильному столбцу.

Я могу применить обходной путь, посылая информацию о том, какие столбцыотображаются или скрываются за пределами таблиц данных, но у меня возникает ощущение, что я делаю что-то не так или упустил, чтобы найти ответ на мою проблему в документации.

1 Ответ

4 голосов
/ 27 февраля 2012

Я не думаю, что существует автоматический способ узнать, что я бы отправил дополнительный параметр на сервер, используя fnServerParams() (как подробно описано в этом примере), чтобы сообщить сервер о том, какие столбцы скрыты

    "fnServerParams": function ( aoData ) {
        aoData.push( { "name": "more_data", "value": "my_value" } );
    }
...