2012-02-27 19 views
5

Tôi không biết nếu đó là một lỗi, nhưng tôi có a + ajax DataTable với các tùy chọn sau:Ajax phân loại phía máy chủ, là iSortCol_0 xem xét các cột 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" } 
       ] 

Tôi có một hình thức mà người sử dụng có thể thêm hàng và khi họ gửi nó tôi thêm dữ liệu vào cơ sở dữ liệu với một cuộc gọi ajax và sau đó gọi: jQuery ('# mydatatable'). dataTable(). fnReloadAjax();

Khi người dùng bấm vào để sắp xếp bảng theo cột "MainTag" ajax server-side của tôi nhận được:

iSortCol_0 4 
iSortingCols 1 

Và tất cả bSortable_ # đang có, một cách chính xác 0-7 (Tôi có 8 cột như hình trên.

Bây giờ vấn đề của tôi là iSortCol_0 là sai lầm, vì các cột nơi ẩn, nếu tôi không có một ý nghĩa để biết được cột được ẩn trên máy chủ tôi hiểu sai iSortCol_0 = 4 sắp xếp theo cột sai.

Tôi có thể triển khai giải pháp thay thế, gửi thông tin của các cột được hiển thị hoặc ẩn bên ngoài để datatables nhưng tôi có cảm giác hoặc là tôi đang làm điều gì đó sai hoặc tôi đã bỏ lỡ để tìm câu trả lời cho vấn đề của tôi trong tài liệu.

Trả lời

4

Tôi không nghĩ rằng có một cách tự động để biết rằng, những gì tôi muốn làm là gửi một tham số bổ sung cho máy chủ bằng cách sử dụng fnServerParams() (như chi tiết trong ví dụ this) để thông báo cho máy chủ về những gì cột được ẩn

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

Cảm ơn/Grazie. Trông giống như một giải pháp hợp lý! –

Các vấn đề liên quan