Javascript 如何将其他参数传递给jQuery DataTable ajax调用?
加载jQuery数据表时,代码如下所示。如何向AJAX调用传递其他参数?下面的问题和答案中建议的fnServerParams回调无效。也就是说,天真地使用Javascript 如何将其他参数传递给jQuery DataTable ajax调用?,javascript,ajax,datatables,Javascript,Ajax,Datatables,加载jQuery数据表时,代码如下所示。如何向AJAX调用传递其他参数?下面的问题和答案中建议的fnServerParams回调无效。也就是说,天真地使用aodata.push()会导致“push未定义”(因为aodata确实不是数组)。那么正确的方法是什么呢 相关问题: self.dataTable = self.dataTableContainer.DataTable({ "autoWidth": false, "bSort": false,
aodata.push()
会导致“push未定义”(因为aodata确实不是数组)。那么正确的方法是什么呢
相关问题:
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%"
}
],
});
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%"
}
],
});
self.dataTable=self.dataTableContainer.dataTable({
“自动宽度”:false,
“bSort”:错误,
“显示开始”:0,
“分页”:false,
“长度变化”:错误,
“处理”:对,
“服务器端”:正确,
“dom”:“,
“ajax”:{
url:getDataUri,
错误:onError,
cache:false,
“fnDrawCallback”:OnTableDrawed,
},
“fnDrawCallback”:OnTableDrawed,
“语言”:{
“info”:resources.alarmHistory,
“infoEmpty”:resources.alarmHistory,
“信息过滤”:”
},
“栏目”:[
{
“数据”:“时间戳”,
“mRender”:功能(数据){
返回IoTApp.Helpers.Dates.localizeDate(数据'L LTS');
},
“名称”:“时间戳”
},
{
“数据”:“设备ID”,
“mRender”:功能(数据){
返回htmlEncode(数据);
},
“名称”:“设备ID”
},
{
“数据”:“规则输出”,
“mRender”:功能(数据){
返回htmlEncode(数据);
},
“名称”:“规则输出”
},
{
“数据”:“值”,
“mRender”:功能(数据){
返回htmlEncode(IoTApp.Helpers.Numbers.localizeFromInvariant(data));
},
“名称”:“值”
},
],
“columnDefs”:[
{
“目标”:[0,1,2,3],
“类名称”:“表\警报历史\发布类型”,
“宽度”:“20%”
}
],
});
我忽略了RTFM。fnServerParams
回调现在适用于1.9版和更早版本。在最新版本的DataTables中,可以利用ajax数据参数。在下面的示例中,将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
}
}
} );
} );
令人惊叹的!这正是我要找的。谢谢你的回答!如何在已初始化的数据表上执行此操作?@SandeepBalagopal我已经多年了,但我认为这是一个不同的问题。您会问:“加载表后如何操作它?”或者更可能的是,您希望捕获ajax承诺并在数据显示之前对其进行操作。我希望在初始化后将额外的参数传递给ajax url。我发现我必须破坏这个表并重新创建它。@SandeepBalagopal我仍然在寻找一个类似问题的答案。如果你有解决办法,请帮助我。