2014-08-27 2 views
0

Я пытаюсь добавить ссылку сортировки столбцов в столбец «срок» в моем веб-приложении, и у меня возникли проблемы с ее правильной работой. В настоящее время, это мой код в контроллер, где я определил заявление переключатель, чтобы определить, каким образом пользователь хочет сортировать:Я хочу добавить ссылки сортировки столбцов на страницу индекса

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 Я получаю ошибку «пропустить». Это вызывает проблему того, почему ссылки сортировки столбцов не будут работать правильно? Любые возможные решения?

-Спасибо!

ответ

0

Я понял ответ на мой вопрос. Мне пришлось удалить предложение .OrderBy.

Смежные вопросы