In this lesson, you will learn how to filter a List View. Three techniques, based on different scenarios, will be illustrated. For this lesson, a filter will be applied to the Contact List View.

在本课中,您将学习如何筛选列表视图。将说明基于不同方案的三种技术。在本课中,筛选器将应用于联系人列表视图。

Note 注意
Before proceeding, take a moment to review the following lessons.

在继续之前,请花点时间复习以下课程。

  • Inherit from the Business Class Library Class (XPO/EF)
  • Implement Custom Business Classes and Reference Properties (XPO/EF)
  • Set a One-to-Many Relationship (XPO/EF)
  • Filter Lookup Editor Data Source
  • Place an Action in a Different Location
  • 从商务舱库类 (XPO/EF) 继承
  • 实现自定义业务类和参考属性 (XPO/EF)
  • 设置一对多关系 (XPO/EF)
  • 筛选器查找编辑器数据源
  • 将操作放置在其他位置

Activate a Filter Action

激活筛选器操作

Use this approach to enable an end-user to apply predefined filters to a particular List View. With this approach, the SetFilter Action (whose items represent predefined filters) is visible in the user interface. This action is activated for List Views only. Predefined filters can be added in the Application Model, and are represented by child nodes of the Views | <ListView> | Filters node (see Filters Application Model Node).

使用此方法使最终用户能够将预定义的筛选器应用于特定的列表视图。使用此方法,SetFilter 操作(其项表示预定义的筛选器)在用户界面中可见。此操作仅针对列表视图激活。预定义的筛选器可以添加到应用程序模型中,并由视图的子节点表示 |<ListView>*筛选器节点(请参阅筛选器应用程序模型节点)。

  • Invoke the Model Editor for the MySolution.Module project. Navigate to the Views | MySolution.Module.BusinessObjects | Contact_ListView node. Right-click the Filters child node and select New | ListViewFilterItem. For the new node, set the Id property to "Development Department Contacts". To specify a criteria, set the Criteria property to the "[Department.Title] = 'Development Department'" value.

  • 调用 MySolution.模块项目的模型编辑器。导航到视图 |My解决方案.模块.业务对象 |Contact_ListView节点。右键单击"筛选器子节点"并选择"新建 |列表视图筛选器项。对于新节点,将 Id 属性设置为"开发部门联系人"。要指定条件,请将"标准"属性设置为"[部门.标题] = "开发部门""值。

Note 注意
The Criteria property value must be specified using the Criteria Language Syntax. To simplify this task, you can invoke the Filter Builder dialog by clicking the ellipsis button () to the right of the Criteria value. Within this dialog, you can design a criteria expression using the visual Filter Builder.

必须使用"条件语言语法"指定"条件"属性值。要简化此任务,可以通过单击条件值右侧的省略号按钮 (EllipsisButton) 来调用"筛选器生成器"对话框。在此对话框中,可以使用可视筛选器生成器设计条件表达式。

  • Add one more Filter node to the Filters node as defined above. Set the Id property to "Developers" and the Criteria property - to "Position.Title = 'Developer'".

  • 如上定义,向筛选器节点再添加一个筛选器节点。将 Id 属性设置为"开发人员"和"条件"属性 - 设置为"位置.标题 = "开发人员"。。

  • To be able to view all Contact objects in the List View, add one more Filter node to the Filters node, as defined above. Set the Id property to "All Contacts" and leave the Criteria property empty.

  • 为了能够查看列表视图中的所有联系人对象,请向筛选器节点再添加一个筛选器节点,如上所述。将 Id 属性设置为"所有联系人",并将"条件"属性保留为空。

  • For the Filters node, set the CurrentFilterID property to "Developers". Save the changes.

  • 对于筛选器节点,将"当前筛选器ID"属性设置为"开发人员"。保存更改。

  • Run the WinForms or ASP.NET application and select the Contacts item in the navigation control. Notice that the SetFilter Action is now available.
  • 运行 WinForms 或ASP.NET应用程序,并在导航控件中选择"联系人"项。请注意,"设置筛选"操作现在可用。

Use the Model Editor's Application | Views | ListView Node

使用模型编辑器的应用程序 |视图 |列表视图节点

Use this approach to filter a List View via the Model Editor. Filters applied with the Model Editor cannot be changed by end-users.

使用此方法通过模型编辑器筛选列表视图。最终用户无法更改与模型编辑器一起应用的筛选器。

  • Run the Model Editor for the MySolution.Module project. Navigate to the Views | MySolution.Module.BusinessObjects | Contact_ListView node. Set its Criteria property to "Position.Title = 'Developer'".

  • 运行 MySolution.模块项目的模型编辑器。导航到视图 |My解决方案.模块.业务对象 |Contact_ListView节点。将其"条件"属性设置为"位置.标题 = "开发人员"。。

  • Run the WinForms or ASP.NET application. Select the Contacts item in the navigation control and check to see if the Contact objects in the List View are filtered.
  • 运行 WinForms 或ASP.NET应用程序。选择导航控件中的"联系人"项并检查是否筛选了"列表"视图中的"联系人"对象。

Filter on Data Source Level

在数据源级别上筛选

Use this approach if you need to apply filters that will not be changed at runtime or via the Model Editor.

如果需要应用在运行时或通过模型编辑器不会更改的筛选器,请使用此方法。

  • Create a View Controller and generate the Activated event handler, as defined in the Add a Simple Action tutorial, as well as the other lessons from the Extend Functionality section.
  • Replace the generated code for the Activated event handler with the following code.

  • 创建视图控制器并生成已激活的事件处理程序,如"添加简单操作"教程中定义,以及"扩展功能"部分中的其他课程。

  • 将已激活事件处理程序生成的代码替换为以下代码。

    using DevExpress.Data.Filtering;
    using MySolution.Module.BusinessObjects;
    // ...
    public partial class FilterListViewController : ViewController {
    // ...
    private void FilterListViewController_Activated(object sender, EventArgs e) {
    if ((View is ListView) & (View.ObjectTypeInfo.Type == typeof(Contact))) {
    ((ListView)View).CollectionSource.Criteria["Filter1"] = new BinaryOperator(
    "Position.Title", "Developer", BinaryOperatorType.Equal);
    }
    }
    }
  • Run the WinForms or ASP.NET application and select the Contacts item in the navigation control. Check to see if the Contact objects in the List View are filtered.
  • 运行 WinForms 或ASP.NET应用程序,并在导航控件中选择"联系人"项。检查是否筛选了列表视图中的"联系人"对象。

Filter List Views 筛选器列表视图的更多相关文章

  1. 表示层设计模式:Intercepting Filter(截取筛选器)模式

     上下文  问题  影响因素  解决方案  变体  示例  结果上下文  相关模式  致谢  上下文 对于任何一个曾经从头建立 Web 应用程序的人来说,他们都会有这样的体会:这项任务所需要的独立完成 ...

  2. SharePoint 2013无代码实现列表视图的时间段动态筛选

    本文介绍两种为列表视图设置时间段筛选器的方法.其中,第一个方法用于SharePoint Server,第二个方法同时还能用于SharePoint Foundation. 方法一:日期筛选器Web部件 ...

  3. Filter 筛选器(一)之 ActionFilter-- IAsyncActionFilter 和 ActionFilterAttribute

    微软官网例子:Filter筛选器 使用场景(执行顺序): IAsyncActionFilter 使用异步actionFilter 只需要实现 他的 :OnActionExecutionAsync 方法 ...

  4. Android列表视图(List View)

    Android列表视图(ListView) ListView是一个显示滚动项列表的示视图组(viewgroup),通过使用适配器(Adapter)把这些列表项自动插入到列表中.适配器比如从一个数组或是 ...

  5. asp.net core 2.2 中的过滤器/筛选器(上)

    ASP.NET Core中的过滤器/筛选器 通过使用 ASP.NET Core MVC 中的筛选器,可在请求处理管道中的特定阶段之前或之后运行代码. 注意:本主题不适用于 Razor 页面. ASP. ...

  6. tableau-交互筛选器

    欢迎观看这段关于“交互筛选器”的视频.   将字段拖到筛选器功能区就可以轻松执行筛选,但是如果我们希望能够直接从视图中修改筛选器 选择项,那该怎么办?如果我们在可看到“子类别”字段的任何位置右键单击, ...

  7. jQuery的基本使用及选择器和筛选器

    回顾 事件 鼠标clickdblclickcontextmenumouseentermouseleavemousemovemousedownmouseup​键盘keydownkeyupkeypress ...

  8. abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  9. drf过滤器、分页器、筛选器的应用

    一.drf 提供的过滤器(ordering) views.py from rest_framework.generics import ListAPIView from . import models ...

随机推荐

  1. hibernate查询方式(三)

    QBC查询 (Query By Criteria) *****QBC查询有三个特点 **查询时不写sql语句 而是用方法来查询 **操作实体类和属性 **通过criteria对象来实现 1.查询所有 ...

  2. luogu P2417 课程

    题目描述 n个学生去p个课堂,每一个学生都有自己的课堂,并且每个学生只能去一个课堂,题目要求能够安排每一个课堂都有人吗? 输入格式 第一行是测试数据的个数, 每组测试数据的开始分别是p和n, 接着p行 ...

  3. mac本地如何搭建IPv6环境测试你的APP

    转自:http://www.cocoachina.com/ios/20160525/16431.html 投稿文章,作者:请勺子喝杯咖啡(简书) IPv6的简介 IPv4 和 IPv6的区别就是 IP ...

  4. 在mac上如何用safari浏览器调试ios手机的移动端页面

    第一步 打开iphone手机的开发者模式,流程是:[设置]->[Safari]->[高级]->开启[Web检查器] 第二步 打开Mac上Safari的开发者模式,流程是[Safari ...

  5. [TimLinux] django 全局变量在WSGI多进程多线程环境中的研究

    场景1: 2个进程,每个进程1个线程,请求函数中设置了10秒sleep,9个请求同一URL: 结果: 1. 全局变量ID值,在每一个进程中相同,不同进程中不相同 2. 并行只能接受2个请求,同时发起多 ...

  6. openlayers5-webpack 入门开发系列一初探篇(附源码下载)

    前言 openlayers5-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载 ...

  7. HDU3191-How many paths are there(次短路的长度及其个数)

    oooccc1 is a Software Engineer who has to ride to the work place every Monday through Friday. For a ...

  8. ARTS-S anaconda常用命令

    建新的环境 conda create --name py36 python=3.6 显示所有环境 conda info --envs 一键安装 wget https://repo.anaconda.c ...

  9. springboot中实现kafa指定offset消费

    kafka消费过程难免会遇到需要重新消费的场景,例如我们消费到kafka数据之后需要进行存库操作,若某一时刻数据库down了,导致kafka消费的数据无法入库,为了弥补数据库down期间的数据损失,有 ...

  10. Pycharm-2018.3.1专业版破解教程

    1.去官网下载并安装2018.3.1(目前最新)专业版本的Pycharm:(https://www.jetbrains.com/pycharm/download/#section=windows). ...