农业网格:使用'serverSide'行模型刷新当前视图



非常简单的问题,似乎找不到答案:

使用gridOptions:{ rowModel: 'serverside'}时,通过getRows回调加载数据。

但是,我们如何简单地"刷新"网格,使其再次执行最后一次getRows调用并更新数据呢?

现在,如果不调用gridApi.purgeServerSideCache(),似乎完全不可能做到这一点,但这会导致所有打开的行组崩溃,出于明显的用户体验原因,我希望避免这些崩溃。

这个到ag网格文档的链接应该很有用:https://www.ag-grid.com/javascript-grid-server-side-model-grouping/#preserving-群状态

从本质上讲,文档声明使用gridApi.purgeServerSideCache((是强制重新加载的首选方式,但他们接着说了以下内容,这应该可以解决用户体验问题:

保留组状态

可能有必要将组扩展到所需的初始状态,或在清除/重新加载数据。

这可以通过在加载块时扩展行节点来实现服务器端数据源。以下片段概述了方法:

function getRows(params) {
>     // 1) get data from server
>     var response = getServerResponse(params.request);
> 
>     // 2) call the success callback
>     params.successCallback(response.rowsThisBlock, response.lastRow);
> 
>     // 3) to preserve group state we expand any previously expanded groups for this block
>     rowsInThisBlock.forEach(row => {
>         if (expandedGroupIds.indexOf(row.id) > -1) {
>             gridOptions.api.getRowNode(row.id).setExpanded(true);
>         }
>     }); 
>  }

请注意,在步骤3中,如果当前块的新加载行节点在expandedGroupIds中定义,则它们将被扩展,其是由应用程序维护的组密钥的阵列。这将具有级联效应,因为扩展组将导致新的要加载的块。

为了方便地查找组行节点,实现以下操作建议回调:gridOptions.getRowNodeId((.

最新更新