【问题标题】:How to filter an UltraGrid based on membership in a collection如何根据集合中的成员资格过滤 UltraGrid
【发布时间】:2013-05-06 21:52:45
【问题描述】:

我目前正在使用一个程序,我需要根据几个不同的条件过滤 UltraGrid。

我的问题是我还没有找到一种方法来表达过滤器中的一个条件。我希望其中一个条件说“如果该行中的值是某个集合的成员,则返回 true”。

例如,如果我的组是一个数组 [1, 2, 3, 4, 5],那么一些示例结果将是:

value = 1: True
value = 2: True
value = 6: False
value = -1: False

有人知道我忽略的简单方法吗?如果可行,我不希望创建自定义过滤器。 FilterComparisionOperator page 上没有其他内容与我正在寻找的内容相匹配。

【问题讨论】:

  • 过滤数据源不是一个选项?
  • @Steve 这可能是一个选择,但我目前不确定。主要问题是这样做会破坏与其他一些已经存在的方法的一致性。不过,这可能是一种选择。
  • 不过像explained here那样构建自定义过滤器并不太复杂

标签: vb.net infragistics ultrawingrid


【解决方案1】:

好的,我应该更仔细地阅读这一点。看起来每个 UltraGridBand 都包含一个 ColumnFiltersCollection。因此,要获得所需的行为,您可以为每个所需条件创建单独的 ColumnFilters。在这种情况下,一个条件将被定义为:

Dim columnFilter As ColumnFilter
columnFilter.LogicalOperator = FilterLogicalOperator.Or

For Each element In MyCollection
    columnFilter.FilterConditions.Add(FilterComparisionOperator.Equals, element)
Next

然后你可以做一个:

Band.ColumnFilters.Add(columnFilter)
Band.ColumnFilters.Add(otherColumnFilter1)
Band.ColumnFilters.Add(otherColumnFilter2)
Band.ColumnFilters.Add(otherColumnFilter3)

请参阅文档(特别是备注)here。此外,此代码可能不是 100% 正确 - 尚未对其进行测试。不过应该可以理解。

【讨论】:

  • 是的,它比我想象的要简单
猜你喜欢
  • 2021-08-26
  • 1970-01-01
  • 2017-01-29
  • 2015-03-04
  • 1970-01-01
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多