Como aplicar a paginação a um conjunto de dados?

Como posso aplicar a paginação a um conjunto de dados? Eu tenho um método no qual construo dinamicamente uma tabela a partir de um conjunto de dados. Não é um problema consultar o banco de dados do qual recebo meu conjunto de dados, mas a iteração das datarows do conjunto de dados é lenta.

Para aumentar o desempenho ao carregar uma página que contém muitas datarows, quero aplicar a capacidade de paginação.

Um recurso que seria bom ter é a capacidade do usuário definir o tamanho da página (quantas linhas exibir em cada página).

questionAnswers(3)

yourAnswerToTheQuestion