我正在使用jQuery DataTables,我想在我的表定义中为Ajax调用添加参数。
但是当我尝试使用fnServerParams
时,它会出错。这是我用来添加参数的表和方法:
var tableObjects = $("#logTable").DataTable({
"bProcessing": false,
"bServerSide": true,
"sAjaxSource": "../../Controller/DashboardController.php5",
"aoColumns": [
{"mDataProp": "clientname" ,"sortable": false },
{"mDataProp": "clientip"},
{"mDataProp": "url","sortable": false },
{"mDataProp": "respsize"},
{"mDataProp": "loggingdate"},
{"mDataProp": "reqmethod"},
{"mDataProp": "resultcode"},
{"mDataProp": "duration"},
{"mDataProp": "hierarchycode"}
],
"fnServerParams": function (val1,val2 ) {
if((val1)&&(val2))
aoData.push({"name":val1,value:val2})
},
"fnServerData": function (sSource, aoData, fnCallback){
aoData.push({"name":"tablename","value":"dashboard"});
$.ajax({
"dataType": "json",
"contentType": "application/json; charset=utf-8",
"type": "GET",
"url": sSource,
"data": aoData,
"success": function(result){
fnCallback(result);
},
error: function (xhr, textStatus, error){
}
}
});
}
})
我在这个函数调用中添加参数:
$("#slcFilter").on("change",function(){
tableObjects.fnServerParams("paramname","value");
//"tableObjects.fnServerParams is not a function" but why ?
});
答案 0 :(得分:1)
在DataTables 1.10中,命名约定已更改,有关详细信息,请参阅API。
您需要使用小写$("#logTable").dataTable()
将表格初始化为d
,以便能够访问以前的版本API或使用大写$("#logTable").DataTable()
的{{1}}来访问更新版本API。
此外,没有D
功能,它是一个选项fnServerParams
,应定义如下:
fnServerParams()
请参阅my answer您的其他类似问题。