我一直在使用
<service-activator ref="txGateway" input-channel="channel1" output-channel="channel2">
<poller/>
<request-handler-advice-chain>
<tx:advice/>
</request-handler-advice-chain>
</service-activator>
<gateway id="txGateway" default-request-channel="txChain"/>
<chain input-channel="txChain">
<Authorzier/>
<JMS_put1/>
<DB_update_state1/>
</chain>
暂时取得了巨大的成功,但我希望能够同时过滤string1,string2或string3,并立即查看所有结果。这可能吗?我在ag-grid文档上找不到任何内容。
答案 0 :(得分:0)
由于自定义过滤器示例here专注于各个列,因此使用External filter似乎是理想的解决方案。
您需要实现两种方法-在gridOptions
上:isExternalFilterPresent()
和doesExternalFilterPass(node)
。
isExternalFilterPresent() {
return true; // to indicate external filtering is on
}
doesExternalFilterPass(node) {
// filter only if searchtext is there
if (this.searchText) {
return Object.values(node.data).includes(this.searchText.split(' ')[0]) // 'string1'
|| Object.values(node.data).includes(this.searchText.split(' ')[1]) // 'string2'
|| Object.values(node.data).includes(this.searchText.split(' ')[2]); // 'string3'
}
return true;
}
// assuming this is bound to your input field
externalFilterChanged(newValue) {
this.searchText = newValue;
this.gridApi.onFilterChanged(); // letting the grid know filter has changed
}
来自文档-
isExternalFilterPresent
每次网格检测到过滤器更改时,都会被精确调用一次。如果外部过滤处于活动状态,则应返回true,否则返回false。如果返回true,doesExternalFilterPass()
将在过滤时被调用,否则将不会调用doesExternalFilterPass()
。doesExternalFilterPass
为网格中的每个行节点调用一次。如果返回false,则该节点将从最终节点中排除 设置。如果外部过滤器发生变化,则需要致电
api.onFilterChanged()
告诉网格。