我正在嘗試使用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 –