在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;
}
本文详细介绍了在XAF中实现过滤条件的多种方法,包括在ApplicationModel的ListView内的Criteria节点、Filters节点、运行时FullTextSearch按钮生成的过滤、运行时直接在CollectionSource.Criteria中添加过滤及使用FilterEditor添加的过滤。通过代码示例展示了如何获取ListView的全部过滤条件。
1395

被折叠的 条评论
为什么被折叠?



