I'd greatly appreciate if someone could advise on following: In my view I display the list of items:
@model PagedList.IPagedList<Items>
@using PagedList.Mvc;
@foreach (var item in Model)
{//displaying data}
my pager looks like this:
@Html.PagedListPager(Model, page => Url.Action("Index", new { humanID = ViewBag.HumanID, page = page }),
new PagedListRenderOptions
{
LinkToFirstPageFormat = "<<",
LinkToPreviousPageFormat = "prev",
LinkToNextPageFormat = "next",
LinkToLastPageFormat = ">>",
})
The problem is that when I click on the next page it is returned blank, without my _Layout
. I wouldn't like to reload _Layout all the time. Is there a way to use Ajax.ActionLink for pager? So that I could UpdateTargedId
inside my partial view?
You cannot use Ajax.ActionLink but you could AJAXify the links. Put the pager in a <div>
:
<div id="myPager">
@Html.PagedListPager(
Model,
page => Url.Action(
"Index",
new {
humanID = ViewBag.HumanID,
page = page
}
),
new PagedListRenderOptions
{
LinkToFirstPageFormat = "<<",
LinkToPreviousPageFormat = "prev",
LinkToNextPageFormat = "next",
LinkToLastPageFormat = ">>",
}
)
</div>
and then AJAXify the links:
$(function() {
$('#myPager').on('click', 'a', function() {
$.ajax({
url: this.href,
type: 'GET',
cache: false,
success: function(result) {
$('#some_grid_container').html(result);
}
});
return false;
});
});
Notice that in the success
callback I've used $('#some_grid_container')
which should be some wrapping div around your entire table.