Custom paging with GridView is great, but the problem is you must use GridView to use it. ASP.NET introduces new DataPager control, which works with ListView control (but will not work with DataList or Repeater controls). The using of DataPager control is simple. After you configured data source for ListView control, you simply drag DataPager from the menu and drop it on web form. After that you only need to set PagerControlID property to ID of ListView control and DataPager will work! You can customize its page size and look if you need.
The problem with DataPager control is that DataPager uses all data from data source to work with. It cannot select only current page to save up web server resources, but simply uses ListView's data source which is not efficient. If your data set has more than 100 or 200 pages or even more, this is unacceptable.
[http://www.beansoftware.com/ASP.NET-Tutorials/Using-Data-Paging.aspx]