配置数据表但在过滤后调用ajax

时间:2018-03-19 17:14:24

标签: jquery datatables

我的问题与此类似:jQuery Datatable - changing data url但我不想在设置数据表时进行ajax调用

我对数据表有这个设置:

p._createDataTableMappings = function (application, field) {
        $('#data_mappings').DataTable({
            "dom": 'rtip',
            "ajax": {
                "url": "/api/applications/" + application + "/mappings/" + field,
                "dataSrc": ""
            },
            "columns": [
                { "data": "Application1" }, 
                { "data": "Field1" },
                { "data": "Value1" },
                { "data": "Application2" },
                { "data": "Field2" },
                { "data": "Value2" }
            ]
        });

url返回的数据是一个对象数组,所以我把dataSrc放到了“”

但是在应用程序 field 值有数据之前,我不想进行ajax调用。这些值由此函数设置:

$("#search").on("click", function (event) {
    var application_value = $("#application").val();
    var field_value = $("#field").val();
    if (application_value && field_value) {
        var table = $("#data_mappings").DataTable();
        table.ajax.url("/api/applications/" + application_value + "/mappings/" + field_value).load();
    }
});

我怀疑如何配置ajax调用

        "ajax": {
            "url": "/api/applications/" + application + "/mappings/" + field,
            "dataSrc": ""
        },
  • 如果我删除了url属性,我会收到来自数据表的警告:无效的JSON响应

  • 如果我在设置函数中删除了整个ajax属性,则调用table.ajax.url(myUrl).load()需要一个具有名为data的属性的对象,但我有一个对象数组。

1 个答案:

答案 0 :(得分:0)

正如@Yuri所说,最好的方法可能是破坏桌面并重建它。这个live example可能会有所帮助 - 您按一个按钮来加载数据,这与您的点击事件类似。