model-view-controller - Telerik MVC 网格 : Create custom FilterDescriptor based on lambda expression

标签 model-view-controller filter grid telerik expression

目前我正在使用这段代码来创建自定义过滤器:

var fName = new FilterDescriptor
{
    Member = "Name",
    MemberType = typeof(string),
    Operator = FilterOperator.Contains,
    Value = name
};

它将像这样添加到 GridCommand:

gridCommand.FilterDescriptors.Add(fName);


但是,想要基于 Linq lambda 表达式创建过滤器,例如:

IQueryable<CD> query = ...
if (!string.IsNullOrWhiteSpace(Artist))
{
    query = query.Where(cd => cd.Artist.Contains(Artist));
}

if (!string.IsNullOrWhiteSpace(Name))
{
    query = query.Where(cd => cd.Name.Contains(Name));
}

如何做到这一点?

最佳答案

在 Telerik 的 QueryableExtensions.cs 文件中,这个扩展方法将完成这项工作:

/// <summary>
/// Filters a sequence of values based on a collection of <see cref="IFilterDescriptor"/>.
/// </summary>
/// <param name="source">The source.</param>
/// <param name="filterDescriptors">The filter descriptors.</param>
/// <returns>
/// An <see cref="IQueryable" /> that contains elements from the input sequence
/// that satisfy the conditions specified by each filter descriptor in <paramref name="filterDescriptors" />.
/// </returns>
public static IQueryable Where(this IQueryable source, IEnumerable<IFilterDescriptor> filterDescriptors) { }

关于model-view-controller - Telerik MVC 网格 : Create custom FilterDescriptor based on lambda expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6788194/

相关文章:

c# - 从 Application_Error 重定向页面时出错

model-view-controller - 用于桌面应用程序的 MVC,将 View / Controller 对与另一个连接

javascript - 过滤一个 json 并用另一个 json 进行响应

ruby-on-rails - Rails 中随处可见的方法

arrays - 过滤器不会迭代数组中的所有元素。为什么?

javascript - 根据属性值删除重复项

c# - 使用 WPF 绘制图像网格

javascript - 组单击时分组网格折叠组

html - 优化流体网格布局

model-view-controller - Beego - 创建模型表单和 ORM