You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Suit CRM:如何让高级搜索中bool类型字段显示为复选框

嘿,我来帮你搞定这个布尔字段在高级搜索里的显示问题!

先确认下你的场景:

在编辑视图中,bool类型字段会正常显示为复选框:
编辑视图的复选框
但切换到高级搜索界面时,这个字段却变成了下拉选择框:
高级搜索的下拉框
目前弹窗定义里该字段的类型是bool,你希望它在高级搜索中也显示为复选框。

具体解决方法

核心思路是:高级搜索组件默认会把布尔类型映射为下拉框(提供“全部/是/否”三个选项),你需要手动指定该字段的搜索控件类型为复选框,以下是几种常见场景的实现方式:

1. 基于.NET类库(如Kendo UI、DevExpress)的项目

如果你的项目用了这类组件库,找到高级搜索的列配置代码,给目标bool字段指定过滤控件为复选框:

// 以Kendo UI Grid为例
.Columns(columns => {
    columns.Bound(m => m.TargetBoolField)
           .Filterable(filterable => filterable.UI("booleanCheckboxFilter"));
})

然后添加对应的前端初始化函数:

function booleanCheckboxFilter(element) {
    // 初始化复选框控件
    element.kendoCheckBox();
}

2. 低代码/可视化配置平台

如果是用低代码平台搭建的界面,直接找到高级搜索的字段配置面板,在目标字段的属性里,把「搜索控件类型」从默认的「下拉选择」切换为「复选框」即可,这类平台一般都提供可视化的配置选项,不需要写代码。

3. 自定义前端页面

如果是自己手写的高级搜索界面,直接把原来的下拉框替换为复选框组件,同时处理好搜索参数的传递逻辑:

<!-- 替换前的下拉框 -->
<select name="TargetBoolField">
  <option value="">全部</option>
  <option value="true">是</option>
  <option value="false">否</option>
</select>

<!-- 替换后的复选框(可根据需求选择单复选或多复选) -->
<div class="filter-item">
  <label><input type="checkbox" name="TargetBoolField" value="true"> 是</label>
  <label><input type="checkbox" name="TargetBoolField" value="false"> 否</label>
</div>

这样调整后,高级搜索里的bool字段就能和编辑视图一样显示为复选框啦!

内容的提问来源于stack exchange,提问作者User123456

火山引擎 最新活动