2010-05-25 14 views
27

Czy jest możliwa zmiana wartości ustawień jQuery DataTables w locie. Mój problem jest następny, muszę zmienić w locie sAjaxSource. Próbowano już czegoś takiego:Zmienić wartość ustawień w locie?

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(); 
} 

Mój aData[3] został zmieniony po kliknięciu.

Odpowiedz

45

Czy próbowałeś

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

tnx człowiek, to działa, dziękuję bardzo. – user147

+0

Nie działa dla mnie, a przynajmniej nie z "bProcessing". –

+2

Nevermind, to fnSettings(). OFeatures.bProcessing, ale wydaje się fubar, jeśli ustawiono na false podczas init. –

3

Można użyć funkcji fnReloadAjax(), patrz wtyczek na oficjalnej stronie elementu datatable.

1

Dla DataTables 1.10+: Metoda

Zastosowanie ajax.url() API, jak pokazano poniżej, aby ustawić Ajax URL i załadować dane z nowego źródła natychmiast:

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

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

Dla DataTables 1,9:

Użyj wtyczki fnReloadAjax() do ponownego załadowania danych tabeli ze źródła Ajax. Pamiętaj, że ta wtyczka została uznana za przestarzałą.

Powiązane problemy