无法正确循环过滤描述符 Telerik Ui

Can't loop throught filterDescriptors properly TelerikUi

所以我有一个 TelerikUigrid,我正在尝试使用服务器端过滤,但我遇到了一个非常奇怪的问题。

因此,当我过滤网格的 1 列时,一切都按预期工作,但是当我同时过滤 2 列或更多列时,我遇到它不起作用。

问题的发生是因为我的 2 个过滤列都保存在一个不可循环的对象中,所以在下面的这个例子中,如果我过滤 2 列过滤器的计数为 2 但不可循环,所以我可以' t "split" 个对象。

所以当过滤器中只有一个对象时,它工作正常,因为只有 1 个可供选择,但是当有 2 个或更多时 Visual Studio 不知道应该选择哪个,所以我的变量重新发送邮件空值。

if (request.filter != null && request.filter.Any())
{
    foreach(var filter in request.filter)
    {
        var filterDescriptor = filter as FilterDescriptor;
        if (filterDescriptor.Value != null)
        {
        //Code

        }
}

如果您有两个过滤器,则过滤器会作为一个名为 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
    }
}