无法正确遍历filterDescriptors TelerikUi

时间:2017-10-19 08:06:32

标签: asp.net telerik telerik-grid telerik-mvc

所以我有一个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]

1 个答案:

答案 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
    }
}