Paginação em um Controle GridView do Servidor Web
O controle GridView do ASP.NET tem um recurso integrado de paginação que oferece suporte a funcionalidades básica de paginação.Você pode usar a interface do usuário padrão de paginação (IU) ou criar uma interface de paginação personalizada.
Como a paginação funciona no controle GridView
O controle GridView suporta paginação nos itens da sua fonte de dados.Você defini a propriedade AllowPaging como true para habilitar paginação.O controle GridView aceita paginação em uma dessas maneiras:
Se o controle GridView é acoplado a um controle da fonte de dados que é capaz de retornar uma única página de dados quando solicitado, o controle GridView irá se aproveitar dessa capacidade diretamente.O número de linhas solicitado pode variar dependendo do número de linhas por página especificadas pela propriedade PageSize, e se é possível obter o número total de linhas a partir da fonte de dados.
Observação: Dos controles da fonte de dados incluídos no .NET Framework, somente o controle ObjectDataSource suporta retornar uma única página de dados.
Observação: Se você estiver criando um fonte de dados (como implementando um método SelectCountMethod no objeto origem para o controle ObjectDataSource), é altamente recomendável que sua fonte de dados retorne a contagem total de linhas ao fornecer páginas de dados.Isso minimiza o número de registros que o controle GridView deve solicitar para recuperar uma página de dados.Se o número total de linhas é fornecido pelo controle da fonte de dados, o controle GridView irá solicitar apenas uma página de linhas por vez.Se a contagem total de linhas não for fornecida, o controle GridView deve solicitar todas as linhas a partir da fonte de dados (começando com a linha que representa a página solicitada de dados) e descartar todas as linhas, exceto a linha que está sendo exibida.
Se o controle GridView está vinculado a um controle da fonte de dados que não oferece suporte a capacidade de paginação diretamente, ou se o controle GridView é acoplado a um estrutura de dados em código através da propriedade DataSource, o controle GridView executará paginação obtendo todos os registros de dados da fonte, exibindo apenas os registros para a página atual e descartando o resto.Isso é suportado apenas quando a fonte de dados para o controle GridView retorna uma coleção que implementa a interface ICollection (inclusive conjuntos de dados).
Observação: Se o fonte de dados não tem suporte a paginação direta e não implementa a interface ICollection, o GridView controle não pode executar paginação.Por exemplo, se você estiver usando um controle SqlDataSource e tiver definido sua propriedade DataSourceMode para DataReader, o controle GridView não pode implementar paginação.
Personalizar a interface do usuário e configurações de paginação
Você pode personalizar a interface do usuário de paginação do controle GridView de várias maneiras.Você pode definir o tamanho da página (ou seja, o número de itens a serem exibidos ao mesmo tempo) usando a propriedade PageSize.Você também pode definir a página atual do controle GridView definindo a propriedade PageIndex.Você pode especificar mais comportamento personalizado usando a propriedade PagerSettings ou fornecendo um modelo de paginação.
Modos de paginação
A propriedade PagerSettings permite que você personalize a aparência da interface do usuário de paginação (IU) que é gerada automaticamente pelo controle GridView quando você define a propriedade AllowPaging para true.O controle GridView pode exibir instruções de controles que permitem a navegação avançar e retroceder assim como controles numéricos que permitem que um usuário mova para uma página específica.
A propriedade PagerSettings do controle GridView é definida como uma classe PagerSettings.Você pode personalizar o modo de paginação definindo a propriedade Mode do controle GridView.Por exemplo, você pode personalizar o modo de interface do usuário de paginação, definindo-o da seguinte maneira:
GridView1.PagerSettings.Mode = PagerButtons.NextPreviousFirstLast
Os modos disponíveis são:
Aparência do controle paginação
O controle GridView tem várias propriedades que você pode usar para personalizar o texto e as imagens para diferentes modos de paginação.Por exemplo, se você deseja permitir navegação usando botões de direção, mas deseja personalizar o texto que apareceu, você pode fazê-lo, definindo as propriedades NextPageText e PreviousPageText, como no exemplo a seguir:
GridView1.PagerSettings.NextPageText = "Click for next page"
GridView1.PagerSettings.PreviousPageText = "Click for previous page"
Você também pode usar imagens para personalizar a aparência de controles de paginação.A classe PagerSettings inclui propriedade da URL da imagem para os botões de comando: primeiro, último, anterior e Próxima Página.
Finalmente, você pode controlar a aparência dos comandos de paginação, definindo a propriedade PagerStyle do controle GridView como um valor TableItemStyle.
Modelo de paginação dados
Se você conjunto o AllowPaging propriedade das GridView o controle para true, o GridView controle adicionará automaticamente controles de interface do usuário na paginação. Você pode personalizar do interface do usuário para paginação adicionando um modelo PagerTemplate.Para especificar qual operação de paginação executar, inclua um controle Button com sua propriedade CommandName definida como Page e a CommandArgument definida como um dos seguintes valores:
First Para mover para a primeira página.
Last Para mover para a última página.
Prev Para mover para a página anterior.
Next Para mover para a próxima página de dados
Um número Para indicar uma página específica.
Eventos de paginação
O controle GridView gera dois eventos quando ele se move para uma nova página de dados.O evento PageIndexChanging ocorre antes do controle GridView realizar a operação de paginação.O evento PageIndexChanged ocorre após a nova página de dados ser retornada para o controle GridView.
Você pode usar o evento PageIndexChanging para cancelar a operação de paginação, se necessário, ou para executar uma tarefa antes do controle GridView solicitar uma nova página dos dados.Você pode usar o evento PageIndexChanged para executar uma tarefa após o usuário se mover para uma página de dados diferente.