docs: design contains filtering for extended lookup
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# 173/174 弹窗本地筛选改为包含匹配
|
||||
|
||||
## 目标
|
||||
|
||||
将 173/174 扩展返回弹窗中 DevExpress 自动筛选行的文本匹配方式,从默认的“开头匹配”改为“包含匹配”。例如在“物料名称”筛选框输入“板”,应匹配“钢板/Q235B”。
|
||||
|
||||
## 根因
|
||||
|
||||
共享弹窗已经启用 `ShowAutoFilterRow`,但 MyControl 与 GridControlEx 在查询完成后动态创建结果列时,没有设置 `GridColumn.OptionsFilter.AutoFilterCondition`,因此沿用了 DevExpress 默认的开头匹配。
|
||||
|
||||
项目内其他表格列已普遍使用 `AutoFilterCondition.Contains`,可直接沿用这一兼容写法。
|
||||
|
||||
## 设计
|
||||
|
||||
仅修改两处动态结果列创建逻辑:
|
||||
|
||||
- `LabelExtendedReturnSearchEdit.ConfigureResultColumns`
|
||||
- `GridControlEx.ConfigureExtendedReturnViewColumns`
|
||||
|
||||
每个结果列创建后设置:
|
||||
|
||||
```csharp
|
||||
column.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Contains;
|
||||
```
|
||||
|
||||
不修改共享弹窗事件,不增加自定义筛选处理,不改变数据库查询 SQL、搜索列下拉框、ResultFields 映射、清空、选择和显示翻译逻辑。
|
||||
|
||||
## 验证
|
||||
|
||||
- 结构检查确认两处动态列均设置 `Contains`。
|
||||
- 编译 `Lskj.Model`、`Lskj.Util`、`Lskj.Business`、`Lskj.Control`。
|
||||
- 运行时由用户确认:自动筛选行输入位于文本中间的内容时仍能命中结果。
|
||||
Reference in New Issue
Block a user