如何更改 ejs-grid 中的默认 FilterSettings
How to change default FilterSettings in ejs-grid
作为 Angular 和 Material 技术的新手,我按照 here 的说明创建了一个网格。这是 table 的 html 模板:
<ejs-grid #grid [dataSource]='data' allowFiltering='true'
allowPaging='true' allowSorting='true' [pageSettings]='pageSettings'
[editSettings]='editSettings' [filterSettings]='filterSettings'
[toolbar]='toolbar'>
<e-columns>
<e-column field='OrderID' headerText='Order ID' width='120'
textAlign='Right'></e-column>
[... and so on with other columns ...]
</e-columns>
</ejs-grid>
我成功地使用了单独的列过滤、排序和分页,由表单引导编辑(列中的内联命令也可以删除)并在工具栏中创建新选项。
但是,在单个列过滤中,当我搜索字符串时,搜索模式默认为 "startsWith",而我需要 "contains".
在我的组件中,我在 ngOnInit 函数中设置了过滤器设置,并且它有效,但仅适用于过滤器的起始条件(示例中的 "needle" 字符串,或 filterSettings 中设置的任何其他内容对象的值,包括“”):
ngOnInit(): void {
[... paging, commands, toolbar settings, not inherent here ...]
// Filter default settings
this.filterSettings = {
columns: [{ field: 'CustomerName', matchCase: false,
operator: 'contains', predicate: 'and', value: 'needle' }]
};
[... other logic not inherent here ...]
}
只要我通过界面手动更改字段的内容,就会使用 "startsWith" 运算符再次执行搜索。我需要设置永久过滤器行为,而不是更改初始搜索条件;经过大量搜索和尝试后,我无法做到。
如何实现默认过滤设置?
注意:我试图只在此处粘贴相关代码,但如果需要更广泛的覆盖范围,我可以提供。
“filterSettings.columns”属性中提供的运算符仅对初始过滤操作有效。然后它将重置为默认运营商。这是 Essential JavaScript 2 网格组件的默认行为。但是,您可以通过在 dataBound 事件中扩展 filterModule.filterOperators 属性 来实现您的要求。
我们在下面的文档页面中讨论了相同的内容。
https://ej2.syncfusion.com/angular/documentation/grid/filtering/#change-default-filterbar-operator
此致,
Thavasianand S.
作为 Angular 和 Material 技术的新手,我按照 here 的说明创建了一个网格。这是 table 的 html 模板:
<ejs-grid #grid [dataSource]='data' allowFiltering='true'
allowPaging='true' allowSorting='true' [pageSettings]='pageSettings'
[editSettings]='editSettings' [filterSettings]='filterSettings'
[toolbar]='toolbar'>
<e-columns>
<e-column field='OrderID' headerText='Order ID' width='120'
textAlign='Right'></e-column>
[... and so on with other columns ...]
</e-columns>
</ejs-grid>
我成功地使用了单独的列过滤、排序和分页,由表单引导编辑(列中的内联命令也可以删除)并在工具栏中创建新选项。 但是,在单个列过滤中,当我搜索字符串时,搜索模式默认为 "startsWith",而我需要 "contains".
在我的组件中,我在 ngOnInit 函数中设置了过滤器设置,并且它有效,但仅适用于过滤器的起始条件(示例中的 "needle" 字符串,或 filterSettings 中设置的任何其他内容对象的值,包括“”):
ngOnInit(): void {
[... paging, commands, toolbar settings, not inherent here ...]
// Filter default settings
this.filterSettings = {
columns: [{ field: 'CustomerName', matchCase: false,
operator: 'contains', predicate: 'and', value: 'needle' }]
};
[... other logic not inherent here ...]
}
只要我通过界面手动更改字段的内容,就会使用 "startsWith" 运算符再次执行搜索。我需要设置永久过滤器行为,而不是更改初始搜索条件;经过大量搜索和尝试后,我无法做到。
如何实现默认过滤设置?
注意:我试图只在此处粘贴相关代码,但如果需要更广泛的覆盖范围,我可以提供。
“filterSettings.columns”属性中提供的运算符仅对初始过滤操作有效。然后它将重置为默认运营商。这是 Essential JavaScript 2 网格组件的默认行为。但是,您可以通过在 dataBound 事件中扩展 filterModule.filterOperators 属性 来实现您的要求。
我们在下面的文档页面中讨论了相同的内容。 https://ej2.syncfusion.com/angular/documentation/grid/filtering/#change-default-filterbar-operator
此致,
Thavasianand S.