2012-02-27 50 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