2011-07-12 7 views
6

Tôi đang sử dụng DataTables với pipelining. Tôi làm việc tuyệt vời trừ khi tôi cố gắng nhập một cột phụ để giữ liên kết "chỉnh sửa". Xem bảng this.DataTables, Ajax Pipelining

Dưới đây là một đoạn server_processing.php hiển thị cột:

/* Array of database columns which should be read and sent back to DataTables. 
    * Use a space where you want to insert a 
    * non-database field (for example a counter or static image) 
    */ 
    $aColumns = array('user','email',); 

Và đây là clientside:

$(document).ready(function(){ 
     $('#example').dataTable({ 
      "bProcessing": true, 
      "bServerSide": true, 
      "sAjaxSource": "scripts/server_processing.php", 
      "fnServerData": fnDataTablesPipeline, 
      aoColumns: [null, null, {"bSortable": false}] 
    }).makeEditable({ 
     sUpdateURL: "UpdateData.php", 
     sAddURL: "AddData.php", 
     sAddHttpMethod: "POST", 
     sDeleteURL: "DeleteData.php", 
     sDeleteHttpMethod: "POST", 
     aoColumns: [ { } , { } , null ] 
    }); 
    }); 

Vì vậy, tại sao không phải là làm việc này?

+1

Kinh nghiệm của tôi với DataTables không bao gồm sử dụng pipelining, nhưng khi thêm một "cột ảo "- cho biết, một cột chỉnh sửa, hộp kiểm, hàng được tính toán, thông thường bạn sẽ cần phải thêm một trình giữ chỗ cho nó trong mảng' aoColumns' của bạn. Vì vậy, tôi sẽ thay đổi 'aoColumns: [null, null, {" bSortable ": false}]' aoColumns: [null, null, {"bSortable": false}] thành 'aoColumns: [null, null, null, {" bSortable ": false}]' – artlung

+2

cũng vậy, anh chàng đã viết dataTables (Alan Jardine tôi nghĩ?) là tuyệt vời trong việc giúp đỡ nếu bạn có bất kỳ câu hỏi nào. Anh ta rất gan dạ và rõ ràng là không ai biết được cái plug tốt hơn bản thân người sáng tạo! – martincarlin87

Trả lời

3

Chỉ cần thực hiện chính xác chính điều này. Tôi muốn định cấu hình tất cả các cột của mình bằng cách sử dụng aoColumnDefs, vì bạn có thể thêm nhiều tùy chọn cấu hình cho các cột trong một lần.

// Disable sorting on the 3rd column 
'aoColumnDefs': [{'aTargets': [2], 'bSortable': false}] 

Lưu ý rằng aTargets là một danh sách cột mà bạn muốn áp dụng các cài đặt đó. Vì vậy, nếu bạn đã thêm các cột liên kết khác (ví dụ: liên kết Xóa), bạn có thể tắt sắp xếp các cột đó mà không cần phải viết lại định nghĩa cột mỗi lần.

// Disable sorting on the 3rd and 4th column 
'aoColumnDefs': [{'aTargets': [2,3], 'bSortable': false}] 

Và, như tôi đã nói, bạn có thể thêm tùy chọn cấu hình hơn nữa đối với các cột trong cùng một mảng này:

// Disable sorting on the 3rd and 4th column and sort 1st column by string 
'aoColumnDefs': [ 
    {'aTargets': [2,3], 'bSortable': false} 
    {'aTargets': [0], 'sType': 'string'} 
]