2015-08-31 4 views
1

Я использую MVC PagedList для обработки pagination в моем проекте. Все работает отлично, за исключением того, что в моем контроллере Мне нужно инициализировать параметр pageNumber с помощью «1» (номер страницы по умолчанию). Проблема заключается в синей активированной кнопке на стр. 1, которая остается там, независимо от того, какая кнопка нажимает кнопку. Кроме того, в этом кнопка также отсутствует действиеLink.Проблема с разбиением на страницы в PagedList MVC

Одна последняя вещь, которую я интегрируя мой поиск с постраничной как вы можете видеть в коде контроллера.

Paged List

public PartialViewResult List_Items(string keyword, int? page) 
{ 
    var newlists = from s in db.TrMs 
        orderby s.S1 
        select s; 

    int pageNumber = (page ?? 1); 
    int pageSize = 10; 
    var data = newlists.Where(f => f.S1.ToString().Contains(keyword) && f.S100 == vt).ToPagedList(pageNumber, pageSize); 
    return PartialView(data); 
} 

Вот сгенерированный Html для PagedList в моей зрения

<div class="pagination-container"> 
    <ul class="pagination"> 
     <li class="active"> 
      <a>1</a> 
     </li> 
     <li> 
      <a data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#searchResult" href="/TrM/Search_Items?keyword=&amp;page=2">2</a> 
     </li> 
     <li> 
      <a data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#searchResult" href="/TrM/Search_Items?keyword=&amp;page=3">3</a> 
     </li> 
     <li> 
      <a data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#searchResult" href="/TrM/Search_Items?keyword=&amp;page=4">4</a> 
     </li> 
     <li class="PagedList-skipToNext"> 
      <a data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#searchResult" href="/TrM/Search_Items?keyword=&amp;page=2" rel="next">»</a> 
     </li> 
    </ul> 
</div> 

Вот как я использую помощника постраничной.

Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount 
@Html.PagedListPager(Model, page => Url.Action("List_Items", "TrM", new {keyword="", page }), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "searchResult" })) 

ответ

2

Ваш контроль подкачки, скорее всего, за пределами SEARCHRESULT контейнера. Когда вы нажимаете на страницу, вы заменяете таблицу, а не элементы управления поисковым вызовом. Переместите свой пейджинговый контроль внутри своего searchResult контейнер!

Надеюсь, это поможет.

+0

Вы правы! Спасибо! Тег «searchResult» был фактически помещен внутри таблицы. Вот почему это не было рендеринг и обновление этого DIV должным образом. Еще раз спасибо! – geekowls

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