Ajax排序服务器端,考虑到hiddend列是iSortCol_0吗?

Max*_*lli 5 javascript ajax jquery-datatables

我不知道这是不是一个bug,但我有一个带有以下选项的数据表+ 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" }
                ]
Run Code Online (Sandbox Code Playgroud)

我有一个用户可以添加行的表单,当他们提交行时,我使用ajax调用将数据添加到数据库,然后调用:jQuery('#mydatatable').dataTable().fnReloadAjax();

当用户单击按"MainTag"列对表进行排序时,我的服务器端ajax会收到:

iSortCol_0 4
iSortingCols 1
Run Code Online (Sandbox Code Playgroud)

并且所有bSortable_都在那里,正确地从0到7(我有8列,如上所示.

现在我的问题是iSortCol_0有误导性,因为隐藏的列,如果我没有意思知道哪些列隐藏在服务器上我误解了iSortCol_0 = 4按错列排序.

我可以实现一个解决方法,发送显示或隐藏在数据表外部的列的信息,但我感觉我做错了或者我错过了在文档中找到问题的答案.

Nic*_*tti 4

我不认为有一种自动方法可以知道这一点,我要做的就是使用fnServerParams()(如示例中详细介绍的)向服务器发送一个额外的参数,以通知服务器隐藏了哪些列

    "fnServerParams": function ( aoData ) {
        aoData.push( { "name": "more_data", "value": "my_value" } );
    }
Run Code Online (Sandbox Code Playgroud)