如何更改 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.