2012-04-18 33 views
5

Tôi muốn xóa hàng từ datatable. Đây là mã datatables tôi sử dụng:jQuery Datatables: làm thế nào để xóa hàng

var aSelected = []; 

oTable = $('.itemPublished').dataTable({ 
    "bJQueryUI": true, 
    "sPaginationType": "full_numbers", 
    "bServerSide": true, 
    "bProcessing": true, 
    "sAjaxSource": "/item/datatable", 
    "bDeferRender": true, 
    "iDisplayLength":20, 
    "aLengthMenu": [[10, 20, 50, 75, 100, 150], [10, 20, 50, 75, 100, 150]], 
    "aoColumnDefs": [ 
      { "bSortable": false, "aTargets": [ 2, 3, 4 ] }, 
      { "sClass": "left", "aTargets": [ 1 ] } 
    ], 
    "fnRowCallback": function(nRow, aData, iDisplayIndex) { 
     if (jQuery.inArray(aData.DT_RowId, aSelected) !== -1) { 
      $(nRow).addClass('row_selected'); 
     } 
     $(nRow).addClass('gradeA'); 
     return nRow; 
    } 
}); 

Tôi muốn kiểm tra kích hoạt sự kiện để xóa một hàng khỏi dữ liệu. Sự kiện được kích hoạt bởi một nút nằm ngoài bảng dữ liệu DOM. Tôi đã thử làm điều này:

$('.test').live('click', function() { 
    oTable.fnDeleteRow(0); 
}); 

Để kiểm tra xem nó có thể xóa hàng đầu tiên khỏi bảng không, cũng như không gây ra lỗi nào. Tôi làm sai ở đâu?

+0

http://stackoverflow.com/a/8254752/617373 – Daniel

Trả lời

7

cho rằng bình luận sau đây: http://datatables.net/forums/discussion/6208/hyperlink-event-to-delete-row/p1:

"Vì bạn đang sử dụng chế biến server-side, và fnDeleteRow biết gì về môi trường server-side của bạn, bạn cần phải thực hiện một cuộc gọi Ajax đến máy chủ cho nó làm xóa và sau đó gọi fnDraw trên bảng để nó làm mới với tập dữ liệu mới. "

+0

nhận gợi ý. cảm ơn bạn –

+2

@IbrahimAzharArmar: Bạn được chào đón. Nó không phải là ngay lập tức rõ ràng, và tôi vẫn không thấy điều này được đề cập trong tài liệu của 'fnDeleteRow'. – Stefan

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