现在的位置: 首页 > 综合 > 正文

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

2013年08月14日 ⁄ 综合 ⁄ 共 1091字 ⁄ 字号 评论关闭

              在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;
        }

抱歉!评论已关闭.