无法正确循环过滤描述符 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
}
}
所以我有一个 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
}
}