views:

1984

answers:

6

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?

+4  A: 

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.

Ben Scheirman
What if you also have to keep up with multiple search parameters as well?
Cptcecil
This becomes slightly more complex. You'll probably want to have a helper take in some context and generate the appropriate URL.
Ben Scheirman
+1  A: 

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.

Todd Smith
A: 

This paging extension for MVC-2 looks pretty cool, although I've not used it yet.

Kieron
+1  A: 

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

nick4eva