asp.net - 无法正确循环过滤器描述符 Telerik Ui

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

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

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

出现问题的原因是我的 2 个过滤列都保存在一个不可循环的对象中,因此在下面的示例中,如果我过滤 2 列,过滤器的计数将为 2 但不可循环,所以我不能“分割”对象。

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

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

关于asp.net - 无法正确循环过滤器描述符 Telerik Ui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46825279/

相关文章:

c# - Asp.Net Owin 授权请求在隐身模式下工作,但不是 "normal"Chrome

c# - 无法获取 asp :dropdownlist which gets populated dynamically 的 ID

asp.net - ASP.net GridView 控件的设计是否巧妙?

c# - 网站使用来自错误目录的代码隐藏文件?

c# - 如何将静态文本设置为JsonResult?

javascript - 无法在 JavaScript 中启用按钮

asp.net - ASP.Net 组件套件有什么好的评论吗

asp.net-mvc-2 - Telerik MVC : Generic Grid

asp.net-mvc-3 - Telerik MVC 网格在运行时来自集合或字典的动态列

javascript - Kendo UI Grid 渲染后或数据绑定(bind)事件后?