所以我有一个TelerikUigrid,我试图使用服务器端过滤,我有一个非常奇怪的问题。
因此,当我过滤网格中的单个列时,一切都按预期工作,但是当我在遇到它的同时过滤2个或更多列时,它不起作用。
问题发生是因为我的2个过滤列都保存在一个不可循环的单个对象中,所以在下面这个例子中,如果我过滤2列过滤器的计数为2,但是不能循环,所以我不能“拆分“对象。
因此,当过滤器中有单个对象时,它可以正常工作,因为只有1个可供选择,但是当有2个或更多时,Visual Studio不知道它应该选择哪个,所以我的变量会重新生成null。
b=[10,2,3]
c=[10,11,12]
d=[]
f=[]
a=10
for i in b:
if a>i:
for j in c:
d.append(j)
else:
f.append(i)
print d
print f
d=[10, 11, 12, 10, 11, 12]
f=[10]
答案 0 :(得分:1)
如果您有两个过滤器,则过滤器将作为名为CompositeFilterDescriptor
的对象进入。
你需要这样的东西:
for (var i = 0; i < filters.Count; i++)
{
if (filters[i] is CompositeFilterDescriptor)
{
var outerCompositeFilter = (CompositeFilterDescriptor)filters[i];
for (var j = 0; j < outerCompositeFilter.FilterDescriptors.Count; j++)
{
if (outerCompositeFilter.FilterDescriptors[j] is FilterDescriptor)
{
// Do something with this filter
}
}
}
if (filters[i] is FilterDescriptor)
{
// Only 1 filter - do something with it
}
}