jquery – 使用ajax刷新表内容后重绘数据?

前端之家收集整理的这篇文章主要介绍了jquery – 使用ajax刷新表内容后重绘数据?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用 Datatables,并在页面上使用AJAX刷新表的按钮。要清楚表格是不是使用ajax的数据源,我们只是在需要的时候使用ajax进行刷新。 Ajax正在刷新表中包含的div。我知道我丢失了分页按钮和过滤功能,因为表需要重新绘制,但我不知道如何将它添加到表初始化代码中。

数据代码

var oTable6;
$(document).ready(function() {
    oTable6 = $('#rankings').dataTable( {
        "sDom":'t<"bottom"filp><"clear">',"bAutoWidth": false,"sPaginationType": "full_numbers","aoColumns": [ 
            { "bSortable": false,"sWidth": "10px" },null,null
        ]

    });
});

这是ajax代码

$("#ajaxchange").click(function(){
    var campaign_id = $("#campaigns_id").val();
    var fromDate = $("#from").val();
    var toDate = $("#to").val();

    var url = 'http://domain.com/account/campaign/ajaxrefreshgrid?format=html';
    $.post(url,{ campaignId: campaign_id,fromdate: fromDate,todate: toDate},function( data ) { 
            $("#ajaxresponse").html(data);
        });
});

我试过这个,但是没有办法

"fnDrawCallback": function() {
    function( data ) { 
        $("#ajaxresponse").html(data);
    };
},

解决方法

看起来好像可以使用API​​函数

>清除表(fnClearTable)
>添加新数据到表(fnAddData)
>重绘表(fnDraw)

http://datatables.net/api

更新

我想你正在使用DOM Data Source(服务器端处理)生成你的表。我没有真的得到这个,所以我以前的答案是不会奏效的。

要使其工作而不重写服务器端代码

您需要做的是完全删除旧表(在dom中),并将其替换为ajax结果内容,然后重新初始化datatable:

// in your $.post callback:

function (data) {

    // remove the old table
    $("#ajaxresponse").children().remove();

    // replace with the new table
    $("#ajaxresponse").html(data);

    // reinitialize the datatable
    $('#rankings').dataTable( {
    "sDom":'t<"bottom"filp><"clear">',"aoColumns": [ 
        { "bSortable": false,null
        ]

    } 
    );
}

猜你在找的jQuery相关文章