fnServerParams不是一个函数

时间:2015-10-19 10:25:39

标签: ajax datatables

我正在使用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 ?
});

1 个答案:

答案 0 :(得分:1)

在DataTables 1.10中,命名约定已更改,有关详细信息,请参阅API

您需要使用小写$("#logTable").dataTable()将表格初始化为d,以便能够访问以前的版本API或使用大写$("#logTable").DataTable()的{​​{1}}来访问更新版本API。

此外,没有D功能,它是一个选项fnServerParams,应定义如下:

fnServerParams()

请参阅my answer您的其他类似问题。