2012-04-20 24 views
14

Tôi đang sử dụng một trình cắm thêm jQuery được gọi là Datatables trên một bảng chứa trong biểu mẫu và bảng này sẽ chứa nhiều phần tử biểu mẫu.Các phần tử biểu mẫu đăng không hiển thị trong DataTables

Tôi có nút Lưu thay đổi trên trang, sẽ thực thi yêu cầu AJAX để cập nhật cơ sở dữ liệu dựa trên nội dung người dùng đã nhập.

Vấn đề tôi có là nó sẽ chỉ đăng phần tử biểu mẫu hiện đang hiển thị trong mục Có thể định cấu hình. Trong một ví dụ tôi có, có 74 hàng (tất cả đều chứa một số trường). Số lượng bản ghi mặc định để hiển thị là 10.

Vì vậy, khi biểu mẫu chỉ được gửi các thành phần biểu mẫu của 10 hàng. Tôi đã gửi các trường của tất cả các hàng - trong trường hợp này tất cả 74 hàng có giá trị của các trường.

Có ai có giải pháp cho việc này không? Cảm ơn.

+0

bạn có đang sử dụng nguồn bên máy chủ cho bảng của mình không? – ManseUK

+0

Tôi đang sử dụng ASP cổ điển để tạo bảng. –

+0

Ý tôi là - bạn có nhận được các hàng ẩn từ máy chủ mỗi lần hay bạn xuất toàn bộ bảng và sau đó phân đoạn dữ liệu phân trang cho bạn? – ManseUK

Trả lời

6

Datatables phá hủy các hàng ẩn và đưa chúng ra khỏi DOM. Nếu bạn cần làm một trình, bạn nên sử dụng fnGetHiddenNodes() để truy xuất các hàng ẩn trước khi gửi. hãy xem api trang

$.fn.dataTableExt.oApi.fnGetHiddenNodes = function (oSettings) 
{ 
    /* Note the use of a DataTables 'private' function thought the 'oApi' object */ 
    var anNodes = this.oApi._fnGetTrNodes(oSettings); 
    var anDisplay = $('tbody tr', oSettings.nTable); 

    /* Remove nodes which are being displayed */ 
    for (var i=0 ; i<anDisplay.length ; i++) 
    { 
     var iIndex = jQuery.inArray(anDisplay[i], anNodes); 
     if (iIndex != -1) 
     { 
      anNodes.splice(iIndex, 1); 
     } 
    } 

    /* Fire back the array to the caller */ 
    return anNodes; 
} 
+0

Cảm ơn rất nhiều. Đã tìm kiếm mã này trong tài liệu và không thể tìm thấy nó. Câu hỏi nhanh khác nhau giữa 'jQuery.inArray' và' $ .inArray' là gì? –

+1

@GarethLewis chúng giống hệt nhau, '$' là bí danh cho 'jQuery' –

+0

OK, nếu tôi hiểu ý tưởng, tôi nên làm gì với các annodes để gửi biểu mẫu? Tôi phải bằng cách nào đó đính kèm mọi hàng vào bảng một lần nữa? – eloyesp

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