Question

Currently, I'm using a strategy found on many blog posts. Basically, the URL contains the page number (e.g. /Users/List/5 will give you the users on page 5 of your paged list of users). However, I'm not running into a situation where one page must list two separate paged lists. How do I go about doing this using ASP.NET MVC? Do I simply provide two url parameters (e.g. /Users/List?page1=1&page2=2)? Is there a better way by using partial views?

Was it helpful?

Solution

Ignoring routes for just a minute, you'll just keep the state of the 2 different pages in the URL as querystring parameters.

mysite.com/foo?list1page=2&list2page=8

Then you build the data/pagers accordingly. The pager links will just update the url.

You can get creative with routes to create more friendly URLs, but I think querystring params are perfectly acceptable here.

OTHER TIPS

I've found ASP.NET MvcPager on the official asp.net site.

If you use query parameters then the page links in each list have to know about each other in-order to pass both parameters.

If the two lists are independent of each other then you can update them individually using jquery & ajax. Simply place each list in their own div as a partial view.

<div id="list1"><%= Html.RenderPartial ("ListA") %></div>
<div id="list2"><%= Html.RenderPartial ("ListB") %></div>

Lookup ajaxSubmit from the jQuery Form plugin for an easy way to update the lists.

PagedList.Mvc is a really easy to use plugin, and is available via Nuget too.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top