Criar uma linha de resumo para um controle DataGrid usando o Visual C# no ASP.NET
Este artigo descreve como criar uma linha de resumo para um controle DataGrid usando o Visual C# em ASP.NET.
Versão original do produto: Visual C#
Número de KB original: 326339
Resumo
Neste artigo, você cria um projeto .NET do Visual C#, adiciona código para acessar a exibição Total de Vendas por Quantidade 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 SaleAmount
campo quando você associa os dados ao DataGrid. Este exemplo também usa o rodapé do DataGrid para exibir o resumo ou os totais.
Para obter uma versão do .NET do Microsoft Visual Basic deste artigo, consulte Como criar uma linha de resumo para um DataGrid no ASP.NET usando o Visual Basic .NET.
Este artigo refere-se ao namespace System.Data.SqlClient
da Biblioteca de Classes .NET Framework a seguir .
Requisitos
A lista a seguir descreve o hardware, software, infraestrutura de rede e service packs recomendados que são necessários:
- Windows
- .NET Framework
- Visual Studio .NET
- IIS (Serviços de Informações da Internet)
- SQL Server 7.0 ou posterior e o banco de dados Northwind
Observação
O banco de dados Northwind é incluído com SQL Server 7.0 e posterior.
Criar um projeto .NET do Visual C# e adicionar o controle DataGrid
Nesta seção, você cria um projeto .NET do Visual C#, 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 (ambiente de desenvolvimento integrado) do Visual Studio .NET é 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 C# 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 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 em DataGrid e clique em Formato Automático. Clique em Colorido 1 e clique em OK.
Clique com o botão direito do mouse em 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 SaleAmount
campo. A exibição Totais de Vendas por Valor inclui os Orders
campos , o CompanyName
e o SaleAmount
.
No IDE do .NET do Visual Studio, 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:
using System.Data.SqlClient;
Adicione o seguinte código na seção declaração de classe:
private double myTotal; //This variable tracks the running total.
Substitua o código no
Page_Load
evento pelo seguinte código:private void Page_Load (object sender, System.EventArgs e) { //Connect to the database, retrieve data, and then fill the data in the DataSet. SqlConnection myConnection = new SqlConnection ("server=(local);uid=sa;" + "pwd=password;database=northwind"); SqlDataAdapter myDataAdapter = new SqlDataAdapter ("SELECT top 15 [OrderID], [CompanyName], " + "[SaleAmount] FROM [Northwind].[dbo].[Sales Totals by Amount]", myConnection); DataSet myDataSet = new DataSet (); myDataAdapter.Fill (myDataSet); //Set the DataSource for the DataGrid, and then bind the data. DataGrid1.DataSource = myDataSet; DataGrid1.DataBind (); }
Modifique o cadeia de conexão conforme apropriado para seu ambiente.
Expanda o Formulário Web Designer região de código gerada e adicione a seguinte instrução na
InitializeComponent
função:this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
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 SaleAmount
valor. 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 SaleAmount
dados.
Adicione o seguinte código após o Page_Load
evento:
private void DataGrid1_ItemDataBound (object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
switch ((int) (e.Item.ItemType))
{
case (int) ListItemType.Item:
case (int) ListItemType.AlternatingItem:
//Calculate total for the field of each row and alternating row.
myTotal += Convert.ToDouble (e.Item.Cells[2].Text);
//Format the data, and then align the text of each cell to the right.
e.Item.Cells[2].Text = Convert.ToDouble (e.Item.Cells[2].Text).ToString ("##,##0.00");
e.Item.Cells[2].Attributes.Add ("align", "right");
break;
case (int) 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");
break;
}
}
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