我想创建一个复杂的过滤,以便
(ColumnA == X或ColumnA == Y)AND(ColumnB == Z或ColumnC == W)
我做的是:
ultraGridResults.DisplayLayout.Bands[0].ColumnFilters.LogicalOperator = FilterLogicalOperator.And;
ultraGridResults.DisplayLayout.Bands[0].ColumnFilters["ColumnA"].FilterConditions.Add(FilterComparisionOperator.Equals, X);
ultraGridResults.DisplayLayout.Bands[0].ColumnFilters["ColumnA"].FilterConditions.Add(FilterComparisionOperator.Equals, Y);
ultraGridResults.DisplayLayout.Bands[0].ColumnFilters["ColumnA"].LogicalOperator = FilterLogicalOperator.Or;
ultraGridResults.DisplayLayout.Bands[0].ColumnFilters["ColumnB"].FilterConditions.Add(FilterComparisionOperator.Equals, Z);
ultraGridResults.DisplayLayout.Bands[0].ColumnFilters[ColumnC].FilterConditions.Add(FilterComparisionOperator.Equals, W);
问题在于,由于ColumnB不同,因此ColumnC我不知道如何插入"或"在这两个条件之间。 我得到的结果是:
(ColumnA == X或ColumnA == Y)AND(ColumnB == Z)AND(ColumnB == W) 而不是我想要的是:
(ColumnA == X或ColumnA == Y)AND(ColumnB == Z或ColumnC == W)
如何编写过滤器,以便右侧还有一个Or运算符? 感谢
答案 0 :(得分:0)
我认为这就是你想要的。考虑所有列都是相同的数据类型,如果不是,你总是可以转换或解析这些值:
if (ColumnA == X || ColumnA == Y && ColumnB==Z || ColumnC == W)
{
//Code here
}
如果这对您有帮助,请向我发送反馈。