首页 > 解决方案 > 在 ag-grid serverSide rowModelType 上实现过滤器

问题描述

我用服务器端 rowModelType 实现了 ag-grid。

在网格上方我有一个输入文本框,它将过滤网格。例如,如果用户在网格中键入“abc”,我应该在 url 中使用“searchString=abc”访问服务器。

我需要使用来自服务器的新数据重新绘制网格。在更改 rowModelType 之前,我在 api 中使用了“setData”方法,但在更改之后,网格 api 中不存在该方法。

谢谢

标签: angularag-grid

解决方案


如果您想重绘网格,您可以尝试几种不同的刷新机制gridApi,具体取决于您选择的rowModel.

这是我通常对服务器端 rowModel 执行的操作: gridApi.purgeServerSideCache()


其他类型的完整性:

行模型:无限

gridApi.refreshInfiniteCache()

gridApi.purgeInfiniteCache()

行模型:客户端

gridApi.refreshClientSideRowModel()

更多细节可以在这里找到,虽然它们有点分散。


但是,您的问题可以用两种方式解释,我不确定您是否真的要重新绘制网格。

相反,当使用serverSiderowModel 时,您应该onGridReady()在代码库中的某个地方有一个回调,您可以在其中设置您的企业请求处理程序:gridApi.setServerSideDatasource({getRows: myGetRowsHandler})myGetRowsHandler应该在每个过滤器更改排序分组分页事件上调用您的自定义处理程序,并获取parameters传递给它的对象。

当您的请求完成后,您需要parameters.successCallback()在 TypeScript 中调用如下所示的:successCallback(rowsThisPage: any[], lastRow: number): void


推荐阅读