我目前正在使用我需要根据几种不同条件过滤UltraGrid的程序。
我的问题是我还没有找到表达过滤器中某个条件的方法。我想要一个条件来说“如果此行中的值是某个集合的成员,则返回true”。
例如,如果我的组是一个数组[1,2,3,4,5],那么一些示例结果将是:
value = 1: True
value = 2: True
value = 6: False
value = -1: False
有人知道我这样做的一种简单方法吗?如果可行,我宁愿不创建自定义过滤器。 FilterComparisionOperator page上的任何其他内容似乎都与我正在寻找的内容相匹配。
答案 0 :(得分:2)
好的,我应该仔细阅读。看起来每个UltraGridBand都包含一个ColumnFiltersCollection。因此,要获得所需的行为,可以为每个所需条件创建单独的ColumnFilter。在这种情况下,一个条件将被定义为:
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%正确 - 尚未测试。应该明白这个想法。