【发布时间】:2014-10-28 15:12:06
【问题描述】:
我正在尝试找出过滤网格的最简单方法。
@Html.Telerik().Grid<MyViewModel>()
.Name("Grid")
.Filterable();
我在 View 中使用 ViewModels,在 Controller 中使用 DomainModels。我使用 AutoMapper 在它们之间进行映射。 问题是 Telerik 网格不是为 ViewModel 设计的,所以过滤器逻辑搞砸了:(
[GridAction(EnableCustomBinding = true)]
public JsonResult SelectHandled(GridCommand command)
{
var items = _repository.AsQueriable()
.Where(command.FilterDescriptors) // <-------- this won't work
.Page(command.Page, command.PageSize);
var vms = Mapper.Map<IEnumerable<MyModel>, IEnumerable<MyViewModel>>(items);
var model = new GridModel
{
Data = vms,
Total = // omitted
};
return Json(model);
}
如何将MyViewModel 的FilterDescriptors 映射到MyModel?
我基本上想实现我自己的IFilterDescriptor Extension。
【问题讨论】:
标签: c# lambda telerik-grid telerik-mvc