AG-GRID:为网格预先设置(默认)过滤器

本教程将介绍AG-GRID:为网格预先设置(默认)过滤器的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

问题描述

我有一个Reaction应用程序,一切似乎都运行得很好。
我想通过筛选添加一项额外的功能,尽管我目前被卡住了。

谁能就怎么预置过滤器提供一些建议

使用我看到的示例过滤方法in this article我尝试实现一个基本示例,尽管它不起作用

this.state = {
gridOptions: {
  .
  .
  .
onGridReady: this.initialFilter
}, 

initialFilter(){
 tmp = {Currency: {type: 'contains', filter: 'usd'}};
 this.state.gridOptions.api.setFilterModel(tmp);
 this.state.gridOptions.api.onFilterChanged();

} 

运行后,我预计会对Currency列进行筛选,以查找包含筛选文本的条件。

=================================================
编辑:
尝试后

initialFilter(){
 let hi=this.state.gridOptions.api.getFilterInstance('Currency');
 hi.setType('contains');
 hi.setFilter('usd');
 hi.onFilterChanged();
} 

无反应+无错误

但当我在更改筛选器的现有方法中添加代码时(当我手动添加筛选器时):

onAfterFilterChanged() {
 let hi=this.state.gridOptions.api.getFilterInstance('Currency');
 hi.setType('contains');
 hi.setFilter('usd');
 hi.onFilterChanged();

 this.setState({
  rowsToDisplay: this.state.gridOptions.api.filterManager.rowModel.rowsToDisplay.length,
  filtering: this.props.report.views.filters
 });
 this.props.filterme(this.state.filtering);
}

然后出现以下错误

Full error: Uncaught RangeError: Maximum call stack size exceeded
at RowRenderer.workOutFirstAndLastRowsToRender (dme-ui-buidle.js:13181)
at RowRenderer.drawVirtualRows (dme-ui-buidle.js:13178)
at RowRenderer.refreshAllVirtualRows (dme-ui-buidle.js:13138)
at RowRenderer.refreshView (dme-ui-buidle.js:13034)
at RowRenderer.onModelUpdated (dme-ui-buidle.js:12979)
at RowRenderer.onPageLoaded (dme-ui-buidle.js:12931)
at dme-ui-buidle.js:2684
at Array.forEach (<anonymous>)
at EventService.dispatchEvent (dme-ui-buidle.js:2683)
at PaginationProxy.onModelUpdated (dme-ui-buidle.js:27264)

推荐答案

根据此处的文档:

和这个柱塞:

这样的事情应该会奏效:

var yourFilterComponent = gridOptions.api.getFilterInstance('youfieldname');
yourFilterComponent.setType('contains');
yourFilterComponent.setFilter('usd');
yourFilterComponent.onFilterChanged();

好了关于AG-GRID:为网格预先设置(默认)过滤器的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。

0
没有账号?注册  忘记密码?