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.SqlClient
da 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.
Inicie o Visual Studio .NET. O IDE do .NET do Visual Studio é exibido.
No menu arquivo, aponte para novo e, em seguida, clique em Project.
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.
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/SummaryRow
e clique em OK. Um novo projeto é criado, que inclui um Formulário Web chamado WebForm1.aspx.Em Gerenciador de Soluções, clique duas vezes em WebForm1.aspx.
Arraste um controle DataGrid da caixa de ferramentas para o formulário.
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.
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.
No IDE, clique com o botão direito do mouse no Formulário Web e clique em Exibir Código.
Na janela code-behind, adicione o seguinte código à parte superior da página:
Imports System.Data Imports System.Data.SqlClient
Adicione o seguinte código na seção declaração de classe:
Private myTotal As System.Double 'This variable tracks the running total.
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
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
- No menu Arquivo , clique em Salvar Tudo.
- On the Build menu, click Build Solution.
- 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
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários