I выполнил некоторое копание , и похоже, что нативный метод OrderBy (), который предоставляет MvcContrib Grid, не поддерживает сортировку данных в подсвойстве.
В действии контроллера, которое обрабатываетПредставляя и сортируя данные, вместо вызова data = data.OrderBy(sort.Column, sort.Direction)
, вам нужно будет немного изменить поведение.В вашем случае самым простым решением, вероятно, будет специальная обработка значения «Country.Name», а затем использование поведения по умолчанию для остальных сортируемых столбцов.Что-то вроде этого должно быть достаточно:
public ActionResult Index(GridSortOptions sort) {
ViewData["sort"] = sort;
var data = GetData();
if (!string.IsNullOrEmpty(sort.Column)) {
if(sort.Column.Equals("Country.Name", StringComparison.OrdinalIgnoreCase)) {
if(sort.Direction == SortDirection.Ascending) {
data = data.OrderBy(d => d.Country.Name);
} else {
data = data.OrderByDescending(d => d.Country.Name);
}
} else {
data = data.OrderBy(sort.Column, sort.Direction);
}
}
return View(data);
}