gpt4 book ai didi

javascript - DataTables初始化后如何更改数据?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:57:38 28 4
gpt4 key购买 nike

我想填充一个 datatables基于 ajax 请求。

这是我做的

   $(function(e) {

$('#CampaignMenu').change(function(e) {

$('#ReportWrapper').hide();


if ( $(this).val() != '0') {
$('#DisplayReport').attr('disabled', false);
} else {
$('#DisplayReport').attr('disabled', true);
}

});

$('#DisplayReport').click(function (e) {

$.ajax({
type: 'GET',
url: '/getdata',
data: { 'campaign_id': $('#CampaignMenu').val() },
dataType: 'json',
success: function (json) {

$('#reportTable').DataTable({
data: json,
pageLength: 50,
lengthMenu: [10, 25, 50, 75, 100, 250, 500, 1000],
searching: false,
order: [ [ 2, 'desc' ] ],
columns: [
{ data: 'chain_name', title: 'Chain Name' },
{ data: 'store_id' , title: 'Store Number' },
{ data: 'completed', title: 'Total Surveys Completed' },
{ data: 'initial_quota', title: 'Target Surveys To Complete' },
{ data: 'total_callable', title: 'Total Call In The Dialer Queue' },
{ data: 'current_status', title: 'Current Quota Status' },
]
});

$('#ReportWrapper').show();

}
});

});

});

</script>

第一个请求没有问题。但是,当我第二次调用ajax请求时,出现了这个错误

DataTables warning: table id=reportTable - Cannot reinitialise DataTable. For more information about this error, please see http://datatables.net/tn/3

表格初始化后如何修改表格内容?

我想在页面加载时初始化数据表,然后调用一些事件以稍后在我的 Ajax 请求中填充它。但是,我需要一个事件来从我的 ajax 请求中调用。

    $(window).load(function (e) {

$('#reportTable').DataTable({
pageLength: 50,
lengthMenu: [10, 25, 50, 75, 100, 250, 500, 1000],
searching: false,
order: [ [ 2, 'desc' ] ],
columns: [
{ data: 'chain_name', title: 'Chain Name' },
{ data: 'store_id' , title: 'Store Number' },
{ data: 'completed', title: 'Total Surveys Completed' },
{ data: 'initial_quota', title: 'Target Surveys To Complete' },
{ data: 'total_callable', title: 'Total Call In The Dialer Queue' },
{ data: 'current_status', title: 'Current Quota Status' }
]
});
});

我试图在重新初始化之前销毁该表,但这不起作用。

$('#reportTable').DataTable().destroy();

已更新

我找到了一种在初始化后向表中添加数据的方法。但我需要一种方法来先清除数据,这样我就不会有重复数据。

这是我添加数据所做的

           var table = $('#reportTable').dataTable();

table.fnAddData(json);

前面的代码一直在向表中追加数据,但它没有先清除现有数据,从而导致重复。我尝试在添加以下代码之前添加 [table.clear().draw()][2] 但这给了我一个错误

TypeError: table.clear is not a function

我怎样才能正确地让 DataTable 不断地动态更改它的内容?

最佳答案

要使用 table.clear(),请使用 DataTable() 而不是 dataTable()

dataTable 返回一个 jquery 对象,其中 DataTable 返回数据表对象

我也遇到过这个问题,我处理它的方式只是销毁所有内容并重新创建它,但性能对于这项任务来说并不是非常关键。

关于javascript - DataTables初始化后如何更改数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35807984/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com