Como criar uma linha de resumo para um DataGrid no ASP.NET usando o Visual Basic .NET

Este artigo passo a passo descreve como criar uma linha de resumo para um controle DataGrid em ASP.NET usando o Visual Basic .NET.

Versão original do produto: Visual Basic .NET
Número de KB original: 313154

Resumo

Neste artigo, você cria um projeto do .NET do Visual Basic, adiciona código para acessar o modo de exibição chamado Total de Vendas por Valor do banco de dados Northwind e associa os Totais de Vendas por Valor ao DataGrid. Este exemplo usa o ItemDataBound evento do DataGrid para totalizar o campo SaleAmount quando você associa os dados ao DataGrid. Este exemplo também usa o rodapé do DataGrid para exibir o resumo ou os totais.

Este artigo refere-se ao namespace System.Data.SqlClientda Biblioteca de Classes do Microsoft .NET Framework .

Observação

Para obter uma versão do .NET do Microsoft Visual C# deste artigo, consulte 326339.

Requisitos

A lista a seguir descreve o hardware, software, infraestrutura de rede e service packs recomendados que são necessários:

  • Microsoft Windows
  • Microsoft .NET Framework
  • Microsoft Visual Studio .NET
  • Serviços de Informações da Internet da Microsoft (IIS)
  • Microsoft SQL Server 7.0 ou posterior e o banco de dados Northwind

Observação

O banco de dados Northwind é incluído com o SQL sServer 7.0 e posterior.

Criar um projeto do .NET do Visual Basic e adicionar o DataGrid

Nesta seção, você cria um projeto .NET do Visual Basic, seleciona um formato para o DataGrid e define o DataGrid para exibir o rodapé. Como você usa o rodapé para exibir o resumo, é importante exibir o rodapé.

Observação

Por padrão, a propriedade ShowFooter está desativada.

  1. Inicie o Visual Studio .NET. O IDE do .NET do Visual Studio é exibido.

  2. No menu arquivo, aponte para novo e, em seguida, clique em Project.

  3. Na caixa de diálogo Novo Projeto , clique em Projetos do Visual Basic em Tipos de Projeto e clique em ASP.NET Aplicativo Web em Modelos.

  4. Na caixa de diálogo Novo Projeto , observe que a caixa Nome não está disponível (ela aparece esmaecida). A caixa Localização contém o seguinte texto (ou semelhante):
    http://localhost/WebApplication1

    Altere o local para http://localhost/SummaryRowe clique em OK. Um novo projeto é criado, que inclui um Formulário Web chamado WebForm1.aspx.

  5. Em Gerenciador de Soluções, clique duas vezes em WebForm1.aspx.

  6. Arraste um controle DataGrid da caixa de ferramentas para o formulário.

  7. Clique com o botão direito do mouse no controle DataGrid e clique em Formato Automático. Clique em Colorido 1 e clique em OK.

  8. Clique com o botão direito do mouse no controle DataGrid e clique em Propriedades. Na caixa de diálogo Propriedades , altere o valor da propriedade ShowFooter para True.

Gravar código para acessar o banco de dados

Nesta seção, você usa a exibição Total de Vendas por Valor localizada no banco de dados Northwind para calcular o resumo do campo SaleAmount. A exibição Totais de Vendas por Valor inclui os campos Orders, CompanyName e SaleAmount.

  1. No IDE, clique com o botão direito do mouse no Formulário Web e clique em Exibir Código.

  2. Na janela code-behind, adicione o seguinte código à parte superior da página:

    Imports System.Data
    Imports System.Data.SqlClient
    
  3. Adicione o seguinte código na seção declaração de classe:

    Private myTotal As System.Double 'This variable tracks the running total.
    
  4. Substitua o código no Page_Load evento pelo seguinte código:

    Private Sub Page_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
        'Connect to the database, retrieve data, and then fill the data in the DataSet.
        Dim myConnection As New SqlConnection("server=(local)\netsdk;"Integrated Security=SSPI" & _
        pwd=;database=northwind")
        Dim myDataAdapter As New SqlDataAdapter("SELECT top 15 [OrderID], [CompanyName], " & _
        "[SaleAmount] FROM [Northwind].[dbo].[Sales Totals by Amount]", myConnection)
        Dim myDataSet As New DataSet()
        myDataAdapter.Fill(myDataSet)
        'Set the DataSource for the DataGrid, and then bind the data.
        DataGrid1.DataSource = myDataSet
        DataGrid1.DataBind()
    End Sub
    
  5. Modifique o cadeia de conexão conforme apropriado para seu ambiente.

Usar o evento ItemDataBound

O ItemDataBound evento é gerado depois que um item é associado aos dados vinculados ao controle DataGrid. Esse evento oferece a última oportunidade de acessar o item de dados antes de aparecer no cliente. Depois que esse evento é gerado, o item de dados é nulo e não está mais disponível.

Para cada item vinculado a dados, você deve marcar a ItemType propriedade. Se ItemType for do tipo Item ou AlternatingItem, você receberá o valor da última célula do item, que contém o valor SaleAmount. Neste exemplo, você adiciona esse valor à variável de resumo em execução. Quando o ItemType é Footer, você recebe o total de todas as linhas. Portanto, você atribui o valor da variável de resumo ao valor de texto da última célula.

Observação

Esse código usa expressões de formatação para fornecer uma aparência uniforme para os dados SaleAmount.

Adicione o seguinte código após o Page_Load evento:

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
    Select Case e.Item.ItemType
    Case ListItemType.AlternatingItem, ListItemType.Item
    'Calculate total for the field of each row and alternating row.
    myTotal += CDbl(e.Item.Cells(2).Text)
    'Format the data, and then align the text of each cell to the right.
    e.Item.Cells(2).Text = Format(CDbl(e.Item.Cells(2).Text), "##,##0.00")
    e.Item.Cells(2).Attributes.Add("align", "right")
    Case ListItemType.Footer
    'Use the footer to display the summary row.
    e.Item.Cells(1).Text = "Total Sales"
    e.Item.Cells(1).Attributes.Add("align", "left")
    e.Item.Cells(2).Attributes.Add("align", "right")
    e.Item.Cells(2).Text = myTotal.ToString("c")
    End Select
End Sub

Criar o projeto e testar o código

  1. No menu Arquivo , clique em Salvar Tudo.
  2. On the Build menu, click Build Solution.
  3. Em Gerenciador de Soluções, clique com o botão direito do mouse na página .aspx e clique em Exibir no Navegador. A página .aspx é exibida no navegador e o DataGrid exibe as colunas OrderID, CompanyName e SaleAmount. Observe que o rodapé exibe o total da coluna SaleAmount.

Referências