gpt4 book ai didi

javascript - AG-GRID - 使用restoreFilterModel可以工作,但在恢复过滤器之前会重新绘制整个网格

转载 作者:行者123 更新时间:2023-11-28 03:15:20 25 4
gpt4 key购买 nike

我已经让我的网格使用saveFilterModel和restoreFilterModel保存和恢复过滤器。一旦我的 httpRequest 完成,网格就会重新绘制并“闪烁”,然后应用restoreFilterModel。因此,从功能上来说它是合理的,但从用户体验的 Angular 来看这是不可取的。有没有一种方法可以在不刷新网格的情况下静默更新行数据?本质上相当于 Excel VBA/宏中的“Application.ScreenUpdating = False”。

我的刷新功能:

      function refreshData() {
saveFilterModel();
let httpRequest = new XMLHttpRequest();
httpRequest.open('GET', '**********');
httpRequest.send();
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState == 4 && httpRequest.status == 200) {
var httpResult = JSON.parse(httpRequest.responseText);
gridOptions.api.setRowData(httpResult);
gridOptions.api.updateRowData({force : true});
restoreFilterModel();
}
};

提供了行为的 Gif(例如设置为每 3 秒请求一次数据)

ag-grid_restoreFilterModel.gif

最佳答案

一些值得尝试的事情:

  • 在 gridOptions 中设置 deltaRowDataMode=true。这会导致网格仅对不同的数据应用更改,而不是仅替换所有数据。

  • 删除对 updateRowData() 的调用。 setRowData() 应该足够了,然后使用 updateRowdata({force: true}) 可能会导致它更新两次。

  • 在使用 setRowData() 应用新数据之前恢复过滤器模型。如果过滤器模型与默认过滤器模型不同,则先设置数据会导致闪烁,因为您会看到由于新过滤器而导致数据发生变化。

关于javascript - AG-GRID - 使用restoreFilterModel可以工作,但在恢复过滤器之前会重新绘制整个网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59690675/

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