2010-05-25 32 views
27

Có thể thay đổi giá trị cài đặt jQuery DataTables khi đang bay. Vấn đề của tôi là tiếp theo, tôi cần phải thay đổi sAjaxSource khi đang bay. Đã thử một cái gì đó như thế này:Thay đổi giá trị cài đặt khi đang di chuyển?

var oDefault = { 
    "bServerSide": true, 
    "bProcessing": true, 
    "bJQueryUI": true, 
    "bLengthChange": false, 
    "bFilter": true, 
    "iDisplayLength": 8, 
    "sAjaxSource": "my.php?" + "idKat="+aData[3], 
    "aaSorting": [[ 0, "asc" ],[ 3, "asc" ]], 
    "sDom": '<"top"ir>t<"bottom"pf<"clear">', 
    "sPaginationType": "full_numbers", 
    "oLanguage": { 
     "sUrl": "<?php echo $full_path_jezik_2;?>" 
    }, 
    "aoColumns": [ 
     { "sName": "rb","sWidth": "15%", "sClass": "center","sType": "numeric" }, 
     { "sName": "chkZaBrisanje","sWidth": "20%", "sClass": "center", "bSortable":false }, 
     { "sName": "rbPrvaSlika","sWidth": "15%", "sClass": "center","bSortable":false }, 
     { "sName": "nazivSlike","sWidth": "50%", "sClass": "center", "sSortDataType": "dom-text" } 
    ] 
}; 

var oST = $.extend(true, {}, oDefault); 
oST.sAjaxSource = "my.php?" + "idKat="+aData[3]; 

alert(oST.sAjaxSource); 

if (typeof oTable == 'undefined') { 
    oTable = $("#my-table").dataTable(oST); 
} 
else 
{    
    oTable.fnDraw(); 
} 

My aData[3] được thay đổi khi nhấp chuột.

Trả lời

45

Các bạn đã thử

oTable = $("#my-table").dataTable(oST); 
var oSettings = oTable.fnSettings(); 
oSettings.sAjaxSource = "new value"; 
+1

tnx người đàn ông, công việc này, cảm ơn bạn rất nhiều. – user147

+0

Không làm việc cho tôi, ít nhất là không với 'bProcessing'. –

+2

Nevermind, đó là fnSettings(). OFeatures.bProcessing, nhưng có vẻ như fubar nếu được đặt thành false trong init. –

3

Bạn có thể sử dụng chức năng fnReloadAjax(), xem các plug-in trên trang web chính thức DataTable.

1

Đối với DataTables 1.10+: Phương pháp

Sử dụng ajax.url() API như hình dưới đây để đặt URL Ajax và tải các dữ liệu từ các nguồn mới ngay lập tức:

var table = $('#example').DataTable({ 
    ajax: 'data.json' 
}); 

table.ajax.url('newData.json').load(); 

Đối với DataTables 1,9:

Sử dụng fnReloadAjax() plugin để tải lại dữ liệu của bảng từ nguồn Ajax. Xin lưu ý rằng plugin này đã không được chấp nhận.

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