COMO: Página através de um resultado da consulta para melhor desempenho

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 318131
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Este artigo faz referência à seguinte espaço de nomes Microsoft .NET Framework Class Library:
  • System.data.SqlClient

NESTA TAREFA

Sumário
Este artigo passo a passo fornece directrizes sobre como implementar a paginação. Este artigo fornece alguns exemplos de paginação e descreve a vantagem de cada método.

back to the top

Métodos para implementar paginação

Existem várias abordagens para paginação. A paginação é normalmente um problema arquitectural. Em grande parte de paginação depende a estrutura de base de dados e quantos registos tenham a página. Pode utilizar um dos seguintes métodos para implementar a paginação:
  • Utilize a paginação intrínseca que conste o controlo DataGrid . Este método de paginação é fácil de utilizar e funciona bem quando tiver um pequeno número de registos a página. No entanto, o desempenho diminui quando aumenta o número de registos. No Microsoft Visual Basic. NET, existe não paginação intrínseca.Para obter informações adicionais sobre como implementar a paginação, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
    305271COMO: Personalizar página um controlo DataGrid Windows utilizando o Visual Basic .NET
  • Para acelerar o desempenho, criar consultas ou procedimentos armazenados para obter o número de registos que pretende. A secção Custom Paging Sample demonstra como implementar a paginação personalizada.

    Também pode utilizar o TOP e cláusulas WHERE na instrução de SQL para consultas de estrutura ou procedimentos armazenados para obter o número de registos que pretende. Para obter mais informações sobre como utilizar TOP e WHERE para implementar a paginação personalizada, visite o seguinte Web site da Microsoft Developer Network (MSDN):
back to the top

Exemplo de paginação personalizada

Este exemplo demonstra como utilizar o controlo DataGrid para implementar a paginação personalizada através do ASP.NET. Quando utiliza este método, é possível obter os registos que pretende em qualquer ordem de página. Como resultado, este método é extremamente eficiente e versátil.

Este exemplo requer que a base de dados incluir tabelas que tenha um índice. Apesar deste exemplo utiliza o Microsoft SQL Server e a base de dados do SQL Server Adamastor , pode adaptar este exemplo para utilizar com qualquer base de dados.
  1. Siga estes passos para criar um novo Visual Basic ASP.NET Web Application:
    1. Inicie o Microsoft Visual Studio NET..
    2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
    3. Na caixa de diálogo Novo projecto , clique em Projectos do Visual Basic em Project Types e, em seguida, clique em ASP.NET Web Application em modelos .
  2. Arraste o controlo DataGrid da caixa de ferramentas para WebForm1.aspx.
  3. Clique com o botão direito do rato DataGrid1 e, em seguida, clique em Construtor de propriedades .
  4. Siga estes passos na caixa de diálogo Construtor de propriedades :
    1. Clique em páginas .
    2. Clique para seleccionar as caixas de verificação AllowCustomPaging e AllowPaging .
    3. Defina a propriedade PageSize para 3 .
    4. Na lista modo , clique em Números de página .
    5. Clique em Aplicar e, em seguida, clique em OK .
  5. Clique em HTML na parte inferior da WebForm1.aspx para abrir a vista de origem HTML. Substitua a tag de <asp:DataGrid> adicionada por predefinição com o seguinte código:
    <asp:DataGrid id="Datagrid1" runat="server" AllowCustomPaging="True" PageSize="3" AllowPaging="True" PagerStyle-Mode="NumericPages" OnPageIndexChanged="DataGrid1_PageIndexChanged"></asp:DataGrid>					
  6. Clique a duas vezes numa área vazia da página WebForm1.aspx para abrir a janela código e, em seguida, adicione espaços de nomes seguintes ao início da página:
    Imports System.DataImports System.Data.SqlClient					
  7. Adicionar a declaração seguinte em Pública Webform1 de classe :
        Dim cn As SqlConnection    Dim StartIndex As Integer    Dim EndIndex As Integer					
  8. Adicione o seguinte código no evento Page_Load do formulário:
            Dim myCommand As SqlCommand        cn = New SqlConnection("server = localhost; uid=userid; pwd=password; database=Northwind ")        If Not IsPostBack Then            myCommand = New SqlCommand()            myCommand.CommandText = "Select Count(*) from Products"            myCommand.Connection = cn            cn.Open()            DataGrid1.VirtualItemCount = myCommand.ExecuteScalar()            cn.Close()            BindDatagrid()        End If					
  9. Adicione o seguinte código depois da subrotina Page_Load :
         Sub BindDatagrid()        Dim myAdapter As SqlDataAdapter        Dim DS As DataSet        EndIndex = StartIndex + DataGrid1.PageSize        myAdapter = New SqlDataAdapter("Select * From Products Where ProductID > @startIndex And ProductID <= @endIndex Order by ProductID", cn)        myAdapter.SelectCommand.Parameters.Add("@startIndex", StartIndex)        myAdapter.SelectCommand.Parameters.Add("@endIndex", EndIndex)        DS = New DataSet()        myAdapter.Fill(DS)        DataGrid1.DataSource = DS        DataGrid1.DataBind()    End Sub    Public Sub datagrid1_PageIndexChanged(ByVal source As System.Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs)        StartIndex = (e.NewPageIndex * DataGrid1.PageSize)        DataGrid1.CurrentPageIndex = e.NewPageIndex        BindDatagrid()    End Sub					
  10. Prima F5 para executar a aplicação.
  11. Para testar o projecto, seleccione qualquer número de página que está listado abaixo da grelha.
back to the top

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 318131 - Última Revisão: 01/30/2014 07:26:43 - Revisão: 2.0

Microsoft ADO.NET (included with the .NET Framework), Microsoft ADO.NET 1.1

  • kbnosurvey kbarchive kbmt kbhowtomaster kbsqlclient kbsystemdata KB318131 KbMtpt
Comentários