gpt4 book ai didi

数据表:如何使用附加参数重新加载服务器端数据

转载 作者:行者123 更新时间:2023-12-04 02:48:30 32 4
gpt4 key购买 nike

我有一个获取其数据服务器端的表,使用自定义服务器端初始化参数,这些参数因生成的报告而异。表格生成后,用户可以打开一个弹出窗口,他们可以在其中添加多个附加过滤器以进行搜索。我需要能够使用与原始表相同的初始化参数,并使用 fnServerParams 添加新参数。

我不知道如何使用数据表 API 获取原始初始化参数。我原以为我可以获得对该对象的引用,使用 fnSettings 获取设置,然后将这些设置传递到新的数据表实例中,如下所示:

var oSettings = $('#myTable').dataTable().fnSettings();
// add additional params to the oSettings object
$('#myTable').dataTable(oSettings);

但是通过 fnSettings 返回的变量不是我需要的,也不起作用。

在这一点上,我似乎要重新构建一些东西,以便我可以将初始化参数作为变量传递并根据需要添加参数,除非有人可以引导我朝着正确的方向前进。

编辑:按照下面 tduchateau 的回答,我能够通过使用

var oTable= $('#myTable').dataTable(),
oSettings = oTable.fnSettings(),
oParams = oTable.oApi._fnAjaxParameters(oSettings);
oParams.push('name':'my-new-filter', 'value':'my-new-filter-value');

并可以确认我的新服务器端参数已添加到现有参数上。

但是,我仍然不完全在那里。

$('#myTable').dataTable(oSettings);

给出错误:

DataTables warning(table id = 'myTable'): Cannot reinitialise DataTable. 
To retrieve the DataTables object for this table, please pass either no arguments
to the dataTable() function, or set bRetrieve to true.
Alternatively, to destroy the old table and create a new one, set bDestroy to true.

设置

oTable.bRetrieve = true;

没有摆脱错误,并设置

oSettings.bRetrieve = true;

导致表不执行 ajax 调用。设置

oSettings.bDestroy = true;

设置时丢失所有自定义参数

oTable.bDestroy = true;

返回上述错误。只需调用

oTable.fnDraw();

使表格以其原始设置重新绘制。

最佳答案

终于使用 fnServerParams 让它工作了。请注意,我使用 url var 对象删除了不必要的参数并添加了新参数:

    "fnServerParams": function ( aoData ) {
var l = aoData.length;

// remove unneeded server params
for (var i = 0; i < l; ++i) {

// if param name starts with bRegex_, sSearch_, mDataProp_, bSearchable_, or bSortable_, remove it from the array
if (aoData[i].name.search(/bRegex_|sSearch_|mDataProp_|bSearchable_|bSortable_/) !== -1 ){
aoData.splice(i, 1);

// since we've removed an element from the array, we need to decrement both the index and the length vars
--i;
--l;
}
}

// add the url variables to the server array
for (i in oUrlvars) {
aoData.push( { "name": i, "value": oUrlvars[i]} );
}
}

关于数据表:如何使用附加参数重新加载服务器端数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18299103/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com