2010-05-25 18 views
27

E 'possibile modificare il valore delle impostazioni di jQuery DataTables al volo. Il mio problema è il prossimo, ho bisogno di cambiare sAjaxSource al volo. Già provato qualcosa di simile:Modifica il valore delle impostazioni al volo?

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

mio aData[3] è cambiato al clic.

risposta

45

Hai provato

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

tnx uomo, questa cosa funziona, grazie mille. – user147

+0

Non funziona per me, almeno non con 'bProcessing'. –

+2

Nevermind, è fnSettings(). OFeatures.bProcessing, ma sembra fubar se impostato su false durante init. –

3

È possibile utilizzare la funzione fnReloadAjax(), vedere i plug-in sul sito ufficiale DataTable.

1

Per DataTables 1.10+: metodo

Uso ajax.url() API come mostrato di seguito per impostare l'URL Ajax e caricare i dati dalla nuova fonte immediatamente:

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

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

Per DataTables 1.9:

Utilizzare il plug-in fnReloadAjax() per ricaricare i dati della tabella dal sorgente Ajax. Si noti che questo plug-in è stato deprecato.

Problemi correlati