jQuery dataTable从新的ajax源重新加载

8

我正在使用jquery Datatable插件。初始代码如下:

$('#Table').dataTable( {
    "sAjaxSource": url
    ...
    ...
}); 

当单击按钮时触发,现在再次单击该按钮时,我想要使用不同的URL获取dataTable。我已经尝试过但没有成功,请给出建议。

if (typeof obj == 'undefined') {

    obj = $('#Table').dataTable( {
    "sAjaxSource": url
    ...
    ...
    })
}else
{
    obj.fnClearTable(0);
    obj.fnDraw(false);

}
4个回答

10

我认为你需要使用fnReloadAjax()函数。你应该像这样使用它:

var oTable = $('#Table').dataTable( {
    "sAjaxSource": url
    ...
    ...
}); 

var newUrl = "new.php";

oTable.fnReloadAjax(newUrl);

同样的问题,你的方法对我不起作用, http://stackoverflow.com/questions/26246666/datatables-fnreloadajax-is-not-working-properly。 我看了文档,知道它应该可以工作,但我不明白为什么对我不起作用。 - Sizzling Code

4
尝试使用此链接:http://datatables.net/reference/api/ajax.url() 如果table是一个dataTable对象,可以这样做:
var table = $('#example').DataTable( { ajax: "data.json" } ); table.ajax.url( 'newData.json' ).load();
如果table不是dataTable对象,可以像我这样做: $('#tableId').DataTable().ajax.url("newUrl").load();

2
这对我有用:
var table = $('#Table').dataTable( {
    "sAjaxSource": url
    ...
    ...
}); 

url = 'newajax.php';

console.log('change input listened');
table.ajax.url(url);
table.draw();

1

This worked for version 1.10:

   oTable.ajax.url("new_source_file.php");
   oTable.draw();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接