Я пытаюсь добавить ссылку сортировки столбцов в столбец «срок» в моем веб-приложении, и у меня возникли проблемы с ее правильной работой. В настоящее время, это мой код в контроллер, где я определил заявление переключатель, чтобы определить, каким образом пользователь хочет сортировать:Я хочу добавить ссылки сортировки столбцов на страницу индекса
var items = from s in db.Items
select s;
ViewBag.DateSortParm = sortOrder == "DueDate" ? "duedate_desc" : "DueDate";
switch (sortOrder)
{
case "duedate_desc":
items = items.OrderByDescending(s => s.DueDate);
break;
case "DueDate":
items = items.OrderBy(s => s.DueDate);
break;
default:
items = items.OrderByDescending(s => s.DueDate);
break;
В индексном вот мой код:
<tr>
<th>
@Html.DisplayNameFor(model => model.First().ItemDescription)
</th>
<th>
@Html.DisplayNameFor(model => model.First().Quantity)
</th>
<th>
@Html.DisplayNameFor(model => model.First().Price)
</th>
<th>
@Html.ActionLink("Due Date", "Index", new
{
sortOrder=ViewBag.DateSortParm,
})
Наконец, это где я верю, что я получаю мою ошибку, обратно в контроллер, когда я возвращаю View у меня есть этот код:
int pageSize = 15;
int pageNumber = (page ?? 1);
pageNumber = page == null ? (ViewBag.pageData == null ? 1 : (int)ViewBag.pageData) : page.Value;
ViewBag.pageData = page;
ViewBag.searchBy = searchBy;
ViewBag.search = search;
return View(items.OrderBy(i => i.ItemId).ToPagedList(pageNumber,pageSize));
Я должен иметь .OrderBy, чтобы получить вид на оказание, otherwi se Я получаю ошибку «пропустить». Это вызывает проблему того, почему ссылки сортировки столбцов не будут работать правильно? Любые возможные решения?
-Спасибо!