如何将其他参数传递给jQuery DataTable ajax调用?
问题描述:
加载jQuery数据表时,我有如下所示的代码。如何将其他参数传递给AJAX调用?下面的问题和答案中建议的fnServerParams回调不起作用。也就是说,天真地使用aodata.push()
导致“push is undefined”(因为aodata的确不是数组)。那么做到这一点的正确方法是什么?如何将其他参数传递给jQuery DataTable ajax调用?
相关问题:
- Datatables serverside. Send extra parameters asynchronously
- Understanding fnServerData in Datatables
代码:
self.dataTable = self.dataTableContainer.DataTable({
"autoWidth": false,
"bSort": false,
"displayStart": 0,
"paging": false,
"lengthChange": false,
"processing": true,
"serverSide": true,
"dom": "<'dataTables_header dashboard_alert_history__alertHeader'i>",
"ajax": {
url: getDataUri,
error: onError,
cache: false,
"fnDrawCallback": onTableDrawn,
},
"fnDrawCallback": onTableDrawn,
"language": {
"info": resources.alarmHistory,
"infoEmpty": resources.alarmHistory,
"infoFiltered": ''
},
"columns": [
{
"data": "timestamp",
"mRender": function (data) {
return IoTApp.Helpers.Dates.localizeDate(data, 'L LTS');
},
"name": "timestamp"
},
{
"data": "deviceId",
"mRender": function (data) {
return htmlEncode(data);
},
"name": "deviceId"
},
{
"data": "ruleOutput",
"mRender": function (data) {
return htmlEncode(data);
},
"name": "ruleOutput"
},
{
"data": "value",
"mRender": function (data) {
return htmlEncode(IoTApp.Helpers.Numbers.localizeFromInvariant(data));
},
"name": "value"
},
],
"columnDefs": [
{
"targets": [0, 1, 2, 3],
"className": 'table_alertHistory_issueType',
"width": "20%"
}
],
});
答
我忽略RTF M.对于版本1.9和更早版本,fnServerParams
回调现在为legacy。在最新版本的DataTable中,您可以使用ajax数据参数as described in the DataTables documentation。在下面的例子中,附加mykey
到d
对象会做的伎俩:
$(document).ready(function() {
$('#example').DataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": "scripts/server_processing.php",
"data": function (d) {
d.myKey = "myValue";
// d.custom = $('#myInput').val();
// etc
}
}
});
});
谢谢你,帮我在正确的运动.. –
@EdathadanChiefakaArun我相信你的意思是“时刻”,虽然一个很好的“运动“对宪法有帮助! – Brett