我目前正在使用一个程序,我需要根据几个不同的条件过滤一个超网格。
我的问题是我还没有找到一种方法来表达过滤器中的一个条件。我希望其中一个条件是"如果本行中的值是某个集合的成员,则返回true"。
例如,如果我的组是一个数组[1,2,3,4,5],一些示例结果将是:
value = 1: True
value = 2: True
value = 6: False
value = -1: False
有没有人知道我忽略的一种简单的方法?如果可行的话,我宁愿不创建自定义过滤器。FilterComparisionOperator页面上没有任何其他内容与我正在寻找的内容匹配。
好吧,我应该更仔细地阅读。看起来每个UltraGridBand都包含一个ColumnFiltersCollection。因此,为了获得想要的行为,可以为每个想要的条件创建单独的columnfilter。在这种情况下,一个条件将定义为:
Dim columnFilter As ColumnFilter
columnFilter.LogicalOperator = FilterLogicalOperator.Or
For Each element In MyCollection
columnFilter.FilterConditions.Add(FilterComparisionOperator.Equals, element)
Next
然后输入a:
Band.ColumnFilters.Add(columnFilter)
Band.ColumnFilters.Add(otherColumnFilter1)
Band.ColumnFilters.Add(otherColumnFilter2)
Band.ColumnFilters.Add(otherColumnFilter3)
在这里查看文档(特别是注释)。此外,这段代码可能不是100%正确-还没有测试过。不过应该能让大家明白。