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. 最小生成树——Kruskal与Prim算法

    最小生成树——Kruskal与Prim算法 序: 首先: 啥是最小生成树??? 咳咳... 如图: 在一个有n个点的无向连通图中,选取n-1条边使得这个图变成一棵树.这就叫“生成树”.(如下图) 每个 ...

  2. 一条数据的HBase之旅,简明HBase入门教程4:集群角色

    [摘要] 本文主要介绍HBase与HDFS的关系,一些关键进程角色,以及在部署上的建议 HBase与HDFS 我们都知道HBase的数据是存储于HDFS里面的,相信大家也都有这么的认知: HBase是 ...

  3. ubuntu下仅仅获取网卡一的ip地址 && shell中字符串拼接

    问题描述: ubuntu下仅仅获取网卡一的ip地址 问题背景: eth0,eth1,eth2……代表网卡一,网卡二,网卡三…… lo代表127.0.0.1,即localhost | 问题描述: 已知字 ...

  4. MySQL必知必会(汇总数据, 聚集函数)

    SELECT AVG(prod_price) AS avg_price FROM products; #AVG只能用于单个列求平均值,如想计算多个列,必须用多个AVG() SELECT AVG(pro ...

  5. luogu P1722 矩阵 II

    题目背景 usqwedf 改编系列题. 题目描述 如果你在百忙之中抽空看题,请自动跳到第六行. 众所周知,在中国古代算筹中,红为正,黑为负-- 给定一个1*(2n)的矩阵(usqwedf:这不是一个2 ...

  6. iOS强制横竖屏转换

    https://www.jianshu.com/p/d6cb54d2eaa1  这篇文章给出的方案是可行的. 经测试,想要第一个界面强制横屏,第二个界面强制竖屏, dismiss掉之后回到第一个界面依 ...

  7. [TimLinux] Python Django与WSGI的简介

    1. Web应用 web应用的最原始的访问流程: 客户端发送HTTP请求: 服务端接收到请求,生成一个HTML文档: 服务端将构造HTTP响应,包含:响应头(响应码.键值对).响应体(HTML文档) ...

  8. 2019CCPC秦皇岛 J MUV LUV EXTRA(KMP)

    MUV LUV EXTRA Time Limit: 2000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)T ...

  9. 用.NET模拟天体运动

    用.NET模拟天体运动 这将是一篇罕见而偏极客的文章. 我上大学时就见过一些模拟太阳系等天体运动的软件和网站,觉得非常酷炫,比如这个(http://www.astronoo.com/en/articl ...

  10. 利用用阿里云API实现DDNS

    前言 之前动态域名解析是用的是腾达路由器上集成的第三方动态解析服务花生壳,解析费用一年40元.后来觉得域名前缀不好,想换掉,花生壳需要重新购买新的域名解析费用,增加1条或者2条动态解析无所谓,万一以后 ...