找回密码
 立即注册

QQ登录

只需一步,快速开始

bpic
金牌服务用户   /  发表于:2017-8-14 09:50  /   查看:3800  /  回复:6
1.看flexgird有两个condition1和conditon2属性,是只允许两列筛选吗?
2。如果是两列筛选,怎么知道conditon1和conditon2对应的是哪一列呢?
            //启用筛选
            var filter = new ConditionFilter();
            filter.Condition1.Operator = ConditionOperator.Equals;
            filter.Condition1.Parameter =2;
            filter.Condition2.Operator = ConditionOperator.Equals;
            filter.Condition2.Parameter =true;
            // 分配新的过滤器到“产品名称”列
            this.c1FlexGrid_BomExpand.Cols["层次"].Filter = filter;(对应Conditon1)
            this.c1FlexGrid_BomExpand.Cols["末节点"].Filter = filter;(对应Conditon1)

3.如果未筛选时就取消筛选会出错,如何避免这种出错?

            //取消筛选,查看全部节点
            var filter = new ConditionFilter();
            filter.
            filter.Condition1.Clear();
            filter.Condition2.Clear();
            // 分配新的过滤器到“产品名称”列
            this.c1FlexGrid_BomExpand.Cols["BOM编号"].Filter = filter;

6 个回复

倒序浏览
JeffryLI
葡萄城公司职员   /  发表于:2017-8-14 11:11:07
沙发
您好:
1、flexgrid的过滤目前系统提供默认的是只有两个两个条件过滤,也就是您可以添加两个条件。
2、一个过滤条件只针对一列,一个过滤条件里面有两个condition
3、未筛选指的是初始化的过滤吗?

请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
bpic
金牌服务用户   /  发表于:2017-8-14 12:19:25
板凳
还是不知道具体怎么书写?
        private void rdbShowAll_CheckedChanged(object sender, EventArgs e)
        {
            //显示所有记录,去掉BOM编号和末节点的筛选,但未启动筛选时点击会报错。
            if (rdbShowAll.Checked)
            {
                //取消筛选,查看全部节点
                var filter = new ConditionFilter();

                filter.Condition1.Clear();
                this.c1FlexGrid_BomExpand.Cols["BOM编号"].Filter = filter;

                filter.Condition1.Clear();
                this.c1FlexGrid_BomExpand.Cols["末节点"].Filter = filter;

            }
        
        }

        private void rdbShowSub_CheckedChanged(object sender, EventArgs e)
        {
            //只显示下一层节点
            if (rdbShowSub.Checked)
            {
                var filter = new ConditionFilter();

                filter.Condition1.Clear();
                this.c1FlexGrid_BomExpand.Cols["末节点"].Filter = filter;

                filter.Condition1.Operator = ConditionOperator.Equals;
                filter.Condition1.Parameter = strID;
                this.c1FlexGrid_BomExpand.Cols["BOM编号"].Filter = filter;

            }

        }

        private void rdbShowEnd_CheckedChanged(object sender, EventArgs e)
        {
            //只显示末节点
            if (rdbShowEnd.Checked)
            {
                //启用筛选
                var filter = new ConditionFilter();

                filter.Condition1.Clear();
                this.c1FlexGrid_BomExpand.Cols["BOM编号"].Filter = filter;

                filter.Condition1.Operator = ConditionOperator.Equals;
                filter.Condition1.Parameter = true;
                this.c1FlexGrid_BomExpand.Cols["末节点"].Filter = filter;
            }
        }
回复 使用道具 举报
bpic
金牌服务用户   /  发表于:2017-8-14 12:22:34
地板
如果涉及两列筛选时,在启动某一列筛选时自动去掉另一个列之前的筛选, filter.Condition1.Clear();无论放在前面或者后面都会有问题。你帮我改改?两个列为 bom编号, 末节点。
回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2017-8-14 15:00:37
5#
bpic 发表于 2017-8-14 12:22
如果涉及两列筛选时,在启动某一列筛选时自动去掉另一个列之前的筛选, filter.Condition1.Clear();无论放 ...

您好,这个您将一个fliter赋了两列,可能导致除了问题,如果可以的话,您做一个demo我帮您看看。
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
bpic
金牌服务用户   /  发表于:2017-8-14 15:26:16
6#
已经解决了,按李老师说的,再实例化一个Filter就好了。
        private void rdbShowAll_CheckedChanged(object sender, EventArgs e)
        {
            //查看下层节点
            if (rdbShowAll.Checked)
            {
                //取消筛选,查看全部节点
                var filter = new ConditionFilter();
                filter.Condition1.Clear();
                // 分配新的过滤器到“产品名称”列
                this.c1FlexGrid_BomExpand.Cols["BOM编号"].Filter = filter;

                var filter2 = new ConditionFilter();
                filter2.Condition1.Clear();
                //// 分配新的过滤器到“产品名称”列
                this.c1FlexGrid_BomExpand.Cols["末节点"].Filter = filter2;
            }



        
        }

        private void rdbShowSub_CheckedChanged(object sender, EventArgs e)
        {
            //查看下层节点
            if (rdbShowSub.Checked)
            {
                var filter = new ConditionFilter();
                filter.Condition1.Operator = ConditionOperator.Equals;
                filter.Condition1.Parameter = strID;

                // 分配新的过滤器到“产品名称”列
                this.c1FlexGrid_BomExpand.Cols["BOM编号"].Filter = filter;

                //// 配置过滤器来选择以“BOM”开始的项目
                var filter2 = new ConditionFilter();
                filter2.Condition1.Clear();
                this.c1FlexGrid_BomExpand.Cols["末节点"].Filter = filter2;
            }

        }

        private void rdbShowEnd_CheckedChanged(object sender, EventArgs e)
        {
            //查看末节点
            if (rdbShowEnd.Checked)
            {
                //启用筛选
                var filter = new ConditionFilter();

                filter.Condition1.Operator = ConditionOperator.Equals;
                filter.Condition1.Parameter = true;
                // 分配新的过滤器到“产品名称”列
                this.c1FlexGrid_BomExpand.Cols["末节点"].Filter = filter;

                var filter2 = new ConditionFilter();
                filter2.Condition1.Clear();
                this.c1FlexGrid_BomExpand.Cols["BOM编号"].Filter = filter2;
            }


        }
回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2017-8-14 16:16:08
7#
bpic 发表于 2017-8-14 15:26
已经解决了,按李老师说的,再实例化一个Filter就好了。
        private void rdbShowAll_CheckedChanged ...

不客气。
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部