EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

列表视图的集合源的Criteria属性

列表视图的ListView.CollectionSource的CollectionSourceBase.Criteria属性允许您在数据源级别过滤列表视图。这意味着只能从数据库中检索满足指定条件的对象。本主题说明了如果您需要应用在运行时或设计时不会更改的过滤器,则如何使用此方法。

执行以下操作以访问列表视图的CollectionSource的Criteria属性:

  1. 创建一个视图控制器
  2. 重写Controller的OnActivated方法以访问当前的ViewController.View对象。
  3. 使用列表视图的ListView.CollectionSource从数据存储中检索所需的对象。
  4. 将您的过滤器添加到CollectionSourceBase.Criteria过滤器集合。

下面的代码演示如何只显示这些对象的全名开始于人列表视图的“A”:

using DevExpress.ExpressApp;
using DevExpress.Data.Filtering;
using DevExpress.Persistent.BaseImpl;
// ...
public class FilterPersonListViewController : ObjectViewController<ListView, Person> {
    protected override void OnActivated() {
        base.OnActivated();
        View.CollectionSource.Criteria["Filter1"] = CriteriaOperator.Parse("StartsWith([FullName], 'A')");
    }
}

该方法可以应用于您可以在代码中定义的任何列表视图。在上面的代码中,所有显示“人员”类型对象的列表视图均被过滤。

在移动应用程序中实现此方法时,请注意不支持免费加入。另外,请参考“功能标准运算符”主题以了解在移动应用程序中使用的“功能标准运算符”的局限性。

刷新对象空间时,不会重新加载“集合源”条件中使用的持久性对象,这会引发SessionMixingException异常。为避免这种情况,请使用持久对象的key属性而不是对象本身。

注意
  • 在嵌套列表视图中,条件不会直接应用于关联的集合。相反,将创建一个单独的集合,并将条件应用于该集合;原始关联的集合未修改。客户端 数据访问模式下的嵌套列表视图具有禁用的代理集合(请参阅XafApplication.DefaultCollectionSourceMode)是一个例外。在这种情况下,标准将直接应用于关联的集合。

  • 当前,TreeListEditor具有有限的筛选功能。如果在过滤列表视图时指定了“收集源”的“条件”属性,则仅过滤根树节点。

转载保留此链接,注明出处