我正在尝试使用MvcContrib
网格控件。但我似乎无法使用排序来处理包含其他对象的复杂对象。MvcContrib Grid对复杂对象进行排序
我在这个问题中设置了我的控制器/类/视图类似于OP。 Sorting with MVCContrib
我试图使用SortColumnName到我的childobject.property,但它给了我一个错误,说我的主要对象没有这个属性。这是我的代码片段
// POCO类
class Issue {
public int ID {get; get; }
.....
public int priorityId {get; set;}
public virtual Priority priority {get; set;}
}
//控制器代码
public ViewResult Index(int? pageNo, GridSortOptions sort)
{
var issues = db.issues.Include(i => i.priority);
ViewBag.sort = sort;
if (!string.IsNullOrEmpty(sort.Column))
{
issues = issues.OrderBy(sort.Column, sort.Direction);
}
return View(issues.ToList().AsPagination(pageNo ?? 1, 10));
}
//信息查看网格
@Html.Grid(Model).Sort(ViewBag.sort as GridSortOptions).Columns(column => {
column.For(issue => Html.ActionLink(" ", "Edit", new { id = issue.ID, areas = "Issues", controller = "Main"}, new { @id="editBtn"})).Named("Edit");
column.For(issue => Html.ActionLink(issue.ID.ToString(), "Edit", new {id = issue.ID, areas = "Issues", controller = "Main"})).Named("ID").Sortable(true);
column.For(issue => issue.priority.codeDesc).Named("Priority").SortColumnName("priority.codeDesc").Sortable(true);
}).Empty("No data found")
代码当我尝试整理在优先级字符串上,它给了我一个错误,说'priority.codeDesc不是问题的属性'。
TIA
谢谢您的回复杰里米。我有这些嵌套属性的全部负载,所以在这种情况下可能不理想。这很快就会被添加到MvcContrib代码中吗? – SimpleUser
就我个人而言,我没有任何计划添加这个 - 我不再积极地开发mvccontrib代码库(但是如果有人想贡献它,我很乐意合并它)。我实际上建议保持视图模型尽可能平坦,并且不要依赖视图中的复杂对象图形来简化。 –
您可以查看Dynamic.Linq OrderBy。有点晚了,我确定= P –