static void

Paged GridView

The basic GridView bound to a collection has to load the entire data to page. To bind with just a single page of data and show paging, GridViews must use an ObjectDataSource (you can fake it with your own paging user control positioned below the GridView).
The ODS creates your object with the default parameterless constructor- but you can fix that by handling the ObjectCreating event.
The GridViewFiller (and ObjectAdaptor) does it programmatically. Note it requires the data to be in an IList<Object> - just copy the paged data to the list (you could create a version for a more specific type, but you'd need a different utiliy (and [Object]Adaptor) for each type.

Full demonstration code