jqGrid自定义过滤,内置过滤工具栏

我正在使用最新的jqGrid版本,我想知道是否可以使用自定义规则进行本地过滤(请参阅下面的示例)。 首先,可以通过应用打开filter工具栏

jQuery("#grid").jqGrid('filterToolbar', options);

在过去我手动实现了这个(我目前使用的版本不支持本地过滤,所以我根据我的需要添加了这个function)现在,在更新到最新版本之后,我问自己jqGrid是否默认提供此function(不是本地过滤,它做了,但自定义过滤规则),因为function在过去几个月中令人印象深刻地增加。 我阅读了文档并搜索了互联网,但没有找到合适的例子。

这是我想要实现的一个例子。

有一个名为First Name的列,其中包含所显示人员的名字。

 Stefan Stephan Stephano Stelios Philip Phillip Philipp Ivan Iwan ... 

现在,用户在第First Name列的过滤栏中输入Ste ,使用默认过滤算法的结果应该是:)

 Stefan Stephan Stephano Stelios 

到现在为止还挺好。 但是,如果我想显示具有ortograph相似的名称呢? 我希望用户输入Ste*an*仅显示

 Stefan Stephan Stephano 

所以你看, *代表任何字符的通配符零次或多次。 另外,我希望用户能够输入Ste?an*结果

 Stefan 

哪里? 意味着任何一个角色。 最后一个要求是使过滤更容忍并且不仅匹配孔线(起始和结束,相当于正则表达式),而是匹配列值,如果它包含输入的文本,即e*o匹配

 Stephano Stelios 

如果你能给我一个*通配符的提示,其他问题应该是正确的。

提前致谢

在我这里和这里的旧答案中,我描述了如何实现自定义过滤。

如果您在演示文稿类型中,例如“客户”列的filter中的“ev”,您将看到以下内容:

在此处输入图像描述

您可以轻松修改演示,例如“Stephan”和“Stefan”等效。

我个人主要在filterToolbar选项中使用defaultSearch: 'cn' 。 结合ignoreCase: true的使用,它遵循非常好的用户体验。 在我个人看来,这种过滤是足够好的。 更高级的用户可以使用高级搜索来创建filter,如“开始”,“Ste”和“包含”“an”而不是Ste*an*

不过你可以使用我的旧演示中的想法来覆盖jqGrid使用的一些内部搜索方法 。