添加新参数时刷新数据表

时间:2014-04-21 20:53:56

标签: jquery datatables jquery-datatables

我有一个搜索屏幕,用户可以在其中自定义为报告检索的数据。这些参数传递给数据表,然后通过ajax检索报告。

用于ajax加载的网址可能类似于report.php?batch=1&id=5

我想要做的是提供一个允许用户下载报告结果的链接。为此,我想向服务器提交相同的请求,但之后我将视图发送到CSV而不是HTML。为此,我想在网址上添加一个额外的变量,因此它会出现report.php?batch=1&id=5&output=download之类的内容。

我尝试了几个approches来添加该变量,两者都没有成功。仅供参考,我已将数据表配置分配给名为fixTheHeader的变量。

1)尝试使用fnServerParams设置值。 fixTheHeader.push({"output":"download"});然后使用fixTheHeader.fnReloadAjax();重新加载表格。虽然这不会产生任何错误,但它也没有将变量添加到url。

2)使用

检索设置为ajax源URL的url
    var source = $(fixTheHeader'.$classNameToAppend.').parents(".dataTables_wrapper").find("table:first").dataTable().fnSettings().oInit.sAjaxSource;

然后将&output=download追加到source并重定向窗口。这种方法的问题是?batch=1&id=5不再是网址的一部分。

我并不挑剔什么方法使它工作,但是,在数据表中有没有办法获取url +变量,添加一个额外的变量,然后重新提交到服务器而不重新加载页面?我不想用参数对这个url进行硬编码,因为我希望这个代码可以用于多个报告。我希望这是有道理的。

我正在使用当前版本(1.9.4)的数据表(http://datatables.net/

1 个答案:

答案 0 :(得分:0)

您可以使用 TableTools extra将下载链接(csv,pdf)添加到任何dataTable。

使用TableTools初始化示例:

$('#example').dataTable( {
    "sDom": 'T<"clear">lfrtip',
    "oTableTools": {
        "sSwfPath": "/swf/copy_csv_xls_pdf.swf"
    }
} );