Oh how I remember those days of page through data, using a GridView controller, or any other controller, lots of coding and so easy to make a mistake.
Just take a look at http://www.unboxedsolutions.com/sean/archive/2005/12/28/818/ by Sean Chase, and you will see what I mean.
Things have moved on a bit since those days, and now we have LINQ it is much easier, both directly feeding from LINQ or via methods, both provide the same result.
Here is how to enable paging directly to LINQ, by using the LinqDataSource
How easy could it be?
When it comes to generating your own method you can do this with just a little more coding and take advantange of the Linq Skip and Take methods, the sample below provides an example using a Method.
To use this fully you will need to make a few changes to the webpage, as shown below:
Now that you have everything set on the page all that is left is the code behind and the methods, I am using the partial class in the example, but it does not have to be.
To ensure that the application is Paging correctly I found running the SQL Profiler on the database made sure that only the data page was being returned and nothing else, you may want to perform your own tests too.
I have included a small application using Visual Studio 2008 and .NET 3.5, all you will need to change is the connection string settings to the NorthWind database.