2014-10-19 136 views
0

我想创建一个复杂的过滤,使得复杂的过滤

(ColumnA == X或者ColumnA == y)和(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我不知道如何在这两个条件之间插入“Or”。 而结果我得到的是:

(ColumnA == X或者ColumnA == y)和(ColumnB == Z)和(ColumnB == W) 而不是我想要的东西是:

(ColumnA == X或ColumnA == Y)和(ColumnB == Z或ColumnC == W)

如何编写过滤器,以便在右侧也有Or运算符? 谢谢

+0

这只是一个错字,或者你真的有两个不同的网格吗? – Steve 2014-10-19 18:04:57

+0

一个网格谢谢:) – user2878881 2014-10-20 07:21:01

+0

不知道这是可能的。我无法达到您的预期结果。我认为你应该问他们的支持网站(或者参考这个问题)。喜欢认识我自己。 – Steve 2014-10-20 07:26:29

回答

0

我认为这是你想要的。考虑到所有的列是相同的数据类型,如果不是你可以随时转换或分析值:

if (ColumnA == X || ColumnA == Y && ColumnB==Z || ColumnC == W) 
{ 
//Code here 
} 

如有此帮助你在所有给我的反馈。

+0

谢谢,但这不起作用,因为我需要infragistics筛选 – user2878881 2014-10-20 07:21:57