2012-02-27 49 views
5

我不知道这是否是一个错误,但我有以下选项的数据表+ AJAX:Ajax排序服务器端,是iSortCol_0考虑hiddend列吗?

 "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的错列排序在服务器上的列。

我可以实施一种解决方法,发送哪些列的信息显示或隐藏在数据表的外部,但是我有这种感觉,或者我做错了什么,或者我错过了在文档中找到问题的答案。

回答

4

我不认为有一种自动的方式知道,我会做的是发送一个额外的参数使用fnServerParams()(如在this示例中详细说明)服务器通知服务器有关哪些列隐藏

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

感谢/感恩教堂。看起来像一个合理的标准解决方案! – 2012-02-27 17:44:20