我在网上搜索过,但我找不到简单的解决办法。我正在使用带有“静态”数据源的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)时刷新数据表?如果保留选择和过滤器,则为奖励点。
改变可以是任何事情。添加了新行,删除了行,更改了单元格值。
答案 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代码和演示。