找回密码
 立即注册

QQ登录

只需一步,快速开始

yanxy

论坛元老

20

主题

66

帖子

1万

积分

论坛元老

积分
18382

活字格认证

QQ
yanxy
论坛元老   /  发表于:2015-1-6 17:51  /   查看:7379  /  回复:5
C1TrueDBGrid的FilterBar的模糊查询是从前面开始匹配的,我看了一下FilterEscape这个属性的默认值是"*%"。
请问想要做到完全匹配代码怎么实现啊?
this.c1TrueDBGrid1.Splits[0].DisplayColumns[0].DataColumn.FilterEscape = "%*%";
我这样写没反应。

5 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-1-7 11:07:00
沙发
回复 1楼yanxy的帖子

默认是单元格的文字的开头包含filtertext。
你说的是exact string match精确匹配么?

这种方式不支持精确匹配。这个需求需要自己写代码实现。
大概思路是:
1.首先绑定c1trueDBGrid到数据源。
2.为了让grid自动过滤,需要设置AllowFilter属性为false和使用FilterChange事件,在该事件中写自定义的逻辑完成过滤。
注意的是:如果是在FilterBar输入,sql的语法像是Like操作符可以从数据源底层匹配。如果是从FilterDropDown里选择值,使用等于符号(=)可以获得精确匹配值。

评分

参与人数 1满意度 +5 收起 理由
yanxy + 5 3q3q3q3q3q

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
dazhi7845
新手上路   /  发表于:2015-5-5 21:20:00
板凳
回复 2楼Alice的帖子

你好! 如果自定义逻辑完成过滤的话,想过滤一个日文词组的话,在FilterChange事件中FilterText只能取到词组的第一个日文汉字,怎么解决呢?
另外,EditActive =true的设定的话,会一直在走FilterChange事件,怎么处理呀。
多谢啦。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-5-6 09:42:00
地板
回复 3楼dazhi7845的帖子

你好。
根据你对问题的描述,你使用了自定义过滤完成过滤。
我不了解你内部的代码逻辑,因此无法推测是不是代码逻辑方面出现的问题。
对于自定义过滤,一个是通过filterBar输入过滤,另一种是通过FiterDropDown选择过滤。如果是用的FilterBar,sql的语法可以使用例如Like操作符去过滤底层数据源的数据,如果是使用的FilterDropDown,应该使用(=)操作符去获取精确匹配。
另外对于一直触发FilterChange事件,我觉得你应该有相关的逻辑判断去做处理。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
dazhi7845
新手上路   /  发表于:2015-5-6 13:04:00
5#
回复 4楼Alice的帖子

你好!谢谢你的回复。
我用的是自定义的过滤。
模糊查询的结果抽取没有问题。
问题是在FilterChange事件中的触发时机上,在FilterBar内输入一个日文词组的时候,便响应FilterChange事件。你说的逻辑判断我不太清楚,因为取得FilterText内容就不对。用什么逻辑也无济于事吧。
请指教。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-5-6 16:40:00
6#
回复 5楼dazhi7845的帖子

你好。
感谢你的反馈。
你强调是日文出现了错误,请问你使用的是日文版还是英文版?
如果你需要在日文项目下使用该控件,请使用日文版。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部