从变量重新加载dataTable

时间:2017-05-16 11:33:05

标签: javascript jquery datatables

我在网上搜索过,但我找不到简单的解决办法。我正在使用带有“静态”数据源的jQuery DataTables(一个Data d; std::vector<int> v1; std::vector<int> v2; ... v1=d.getValues(); //i want copy v2=std::move(d.getValues()); // i want move 使用SignalR填充数据,然后构建DataTable)。现在,当更改此数据集时,我想使用此数据集更新表。理想情况下,这将是简单的“刷新”,它从指定的源重新加载数据。这是我的HTML

var

这是我最初加载数据的javascript:

<table class="table table-hover table-condensed table-responsive" id="tableAccounts">
        <thead>
            <tr>
                <th data-localize="_A_C">_A_C</th>
                <th data-localize="_Name">_Name</th>
                <th data-localize="_Address">_Address</th>
                <th data-localize="_City">_City</th>
                <th data-localize="_Phone">_Phone</th>
            </tr>
        </thead>
      <tbody></tbody>

TL;博士;

如何在不破坏整个表的情况下更改数据源(在本例中为AccountAll)时刷新数据表?如果保留选择和过滤器,则为奖励点。

改变可以是任何事情。添加了新行,删除了行,更改了单元格值。

1 个答案:

答案 0 :(得分:5)

您可以结合使用clear()rows.add() API方法来清除现有数据并添加更新数据。

在这种情况下,将保留过滤和排序。

如果您想保留当前页面,请拨打draw(false)而不是draw(),但如果您要添加新行,则保留当前页面几乎没有意义

例如:

var data = [['old',2,3,4,5,6]];

var table = $('#example').DataTable({
    'data': data
});

var dataNew = [['new',2,3,4,5,6]];
table.clear().rows.add(dataNew).draw();

请参阅this example代码和演示。