起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2929|回复: 4

[结贴] GridFilter多选时,如何设置默认过滤条件?

[复制链接]

152

主题

413

帖子

2182

积分

金牌会员

Rank: 6Rank: 6

积分
2182
QQ
发表于 2019-10-11 16:16:40 | 显示全部楼层 |阅读模式
GridFiter设置multiselect=true时,如何设置默认过滤条件?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2019-10-11 17:18:28 | 显示全部楼层
默认过滤条件跟单选的设置一样
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

152

主题

413

帖子

2182

积分

金牌会员

Rank: 6Rank: 6

积分
2182
QQ
 楼主| 发表于 2019-10-11 22:26:45 | 显示全部楼层
GridFiter设置多选默认值时有bug,这是gridFilter.js中的代码:
                                getFilterStr : function() {
                                        var bizData = this.getFilterData();
                                        var relation = bizData.defCols[this.filterCol].relation;
                                        var values = this.selectedValue.get() || this.getDefaultValue();

                                        var gridSelect = this.getGridSelect();
                                        var multiSelect = gridSelect.optionCfg.multiselect;
                                        var separator = gridSelect.valueSeparator;
                                       
                                       
                                        if (!values || $.trim(values) === "") {
                                                return "";
                                        }
                                       
                                        separator = separator ? separator : ",";
                                        if (typeof(values) == "string") {
                                                if (multiSelect) {
                                                        values = values.split(separator);  
                                                } else {
                                                        values = [values];
                                                }
                                        }
                                       
                                        var filters = [];
                                        $.each(values, function(i, value) {
                                                value = value.replace(/'/g, "''");
                                                filters.push(relation + "='" + value + "'");
                                        });
                                        return "(" + filters.join(") OR (") + ")";
                                }

注意这一行:var multiSelect = gridSelect.optionCfg.multiselect,下拉框没下拉时,multiSelect始终为空值(可参考gridSelect.js中的代码)。所以,不会把默认值拆分为多个过滤条件。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2019-10-12 09:04:56 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

152

主题

413

帖子

2182

积分

金牌会员

Rank: 6Rank: 6

积分
2182
QQ
 楼主| 发表于 2019-10-12 09:39:23 | 显示全部楼层
好的,谢谢,请结帖
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-29 03:46 , Processed in 2.489341 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表