XAF之怎样获取ListView所有的筛选条件

              在XAF中,有很多种附加过滤条件的方法,列举如下:

1.在Application Model的ListView的Criteria节点内写入筛选信息,如图1所示。该过滤条件会以"ListViewCriteria"为键名放入ListVIew.CollectionSource.Criteria字典中。


图1

2.在Application Model的ListView的Filters节点下创建过滤节点ListViewFilter,写入过滤条件,如图2所示。该过滤条件以"ListViewFilter"为键名最终也放入了ListView.CollectionSource.Criteria字典中。


图2

3.运行时FullTextSearch按钮生成的过滤条件,如图3,它也是以"FullTextSearchCriteria"作为键名放入ListView.CollectionSource.Criteria字典中。


图3

4.也是最常用的一种,运行时直接在ListView.CollectionSource.Criteria字典中添加过滤:

ListView lv = View as ListView;
            lv.CollectionSource.Criteria["runtime"] = new BinaryOperator("Text", "CollectionSource Criteria Dictionary", BinaryOperatorType.Like);
5.运行时,使用Filter Editor添加的过滤,如图4所示。该过滤条件保存在GridListEditor.GridView.FilterInfo中。

图4


因此,获得ListView的全部的过滤条件的方法,就是把ListView.CollectionSource.Criteria和GridView中全部的过滤条件提取出来就可以了,如下代码所示:

public CriteriaOperator GetAllFilters(ListView view)
        {
            XafGridView grid = (view.Editor as GridListEditor).GridView;
            CriteriaOperator filter = new GroupOperator(GroupOperatorType.And,view.CollectionSource.Criteria.Values);
            filter = new GroupOperator(GroupOperatorType.And, filter, grid.ActiveFilterCriteria);
            return filter;
        }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值