【发布时间】:2018-11-27 22:05:30
【问题描述】:
我使用服务器端 rowModelType 实现了 ag-grid。
在网格上方我有一个输入文本框,它将过滤网格。 例如,如果用户在网格中键入“abc”,我应该在 url 中使用“searchString=abc”访问服务器。
我需要使用来自服务器的新数据重新绘制网格。 在更改 rowModelType 之前,我在 api 中使用了“setData”方法,但在更改之后,网格 api 中不存在该方法。
谢谢
【问题讨论】:
我使用服务器端 rowModelType 实现了 ag-grid。
在网格上方我有一个输入文本框,它将过滤网格。 例如,如果用户在网格中键入“abc”,我应该在 url 中使用“searchString=abc”访问服务器。
我需要使用来自服务器的新数据重新绘制网格。 在更改 rowModelType 之前,我在 api 中使用了“setData”方法,但在更改之后,网格 api 中不存在该方法。
谢谢
【问题讨论】:
如果您想重绘网格,您可以尝试gridApi 中的几种不同刷新机制,具体取决于您选择的rowModel。
以下是我通常对服务器端 rowModel 执行的操作:
gridApi.purgeServerSideCache()
gridApi.refreshInfiniteCache()
gridApi.purgeInfiniteCache()
gridApi.refreshClientSideRowModel()
更多细节可以在here找到,虽然它们有点分散。
但是,您的问题可以用两种方式解释,我不确定您是否真的要重新绘制网格。
相反,当使用serverSide rowModel 时,您的代码库中应该有一个onGridReady() 回调,您可以在其中设置您的企业请求处理程序:gridApi.setServerSideDatasource({getRows: myGetRowsHandler})。
您的自定义 myGetRowsHandler 处理程序应在每个 filter change、sorting、grouping 或 paging 事件上调用并获取一个parameters 对象传入其中。
当您的请求完成后,您需要调用 parameters.successCallback(),它在 TypeScript 中如下所示:successCallback(rowsThisPage: any[], lastRow: number): void
【讨论】: