Ideal pagination is done at database level. For that you create a SP which might take two parameters. One would be the no. of records you want to show on each page and another parameter would no. of page that your user is on.
For example - if your user is on page 1 and records per page is 20, then retrieve records from your db where row id is from 1 to 20. if user wants to see page 3 then retrieve row 41 to 60. If you do not have uniqueidentifier in your SQL table then you would have to use inner query with the help of ROW_NUMBER() function. Following is a link to paging using SQL Server ROW_NUMBER() function.
http://www.davidhayden.com/blog/dave/archive/2005/12/30/2652.aspx
Along side of this logic you can also combine sorting. That could be a third parameter to your SP. You can first sort your data in any way and then take a proper page out.