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使用的一些内部搜索方法 。