Creación de una fila de resumen para dataGrid en ASP.NET mediante Visual Basic .NET
En este artículo paso a paso se describe cómo crear una fila de resumen para un control DataGrid en ASP.NET mediante Visual Basic .NET.
Versión original del producto: Visual Basic .NET
Número de KB original: 313154
Resumen
En este artículo, creará un proyecto de .NET de Visual Basic, agregará código para acceder a la vista denominada Totales de ventas por importe desde la base de datos Northwind y, a continuación, enlazará la vista Totales de ventas por importe a DataGrid. En este ejemplo se usa el ItemDataBound
evento de DataGrid para totalar el campo SaleAmount cuando se enlazan los datos a DataGrid. En este ejemplo también se usa el pie de página de DataGrid para mostrar el resumen o los totales.
En este artículo se hace referencia al espacio de nombres System.Data.SqlClient
biblioteca de clases de Microsoft .NET Framework .
Nota:
Para obtener una versión de Microsoft Visual C# .NET de este artículo, consulte 326339.
Requisitos
En la lista siguiente se describen el hardware, el software, la infraestructura de red y los Service Pack recomendados que son necesarios:
- Microsoft Windows
- Microsoft .NET Framework
- Microsoft Visual Studio .NET
- Microsoft Internet Information Services (IIS)
- Microsoft SQL Server 7.0 o posterior y la base de datos Northwind
Nota:
La base de datos Northwind se incluye con SQL sServer 7.0 y versiones posteriores.
Creación de un proyecto de .NET de Visual Basic y adición de DataGrid
En esta sección, creará un proyecto de .NET de Visual Basic, seleccionará un formato para DataGrid y, a continuación, establecerá DataGrid para mostrar el pie de página. Dado que usa el pie de página para mostrar el resumen, es importante que muestre el pie de página.
Nota:
De forma predeterminada, la propiedad ShowFooter está desactivada.
Inicie Visual Studio .NET. Aparece el IDE de .NET de Visual Studio.
En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto.
En el cuadro de diálogo Nuevo proyecto , haga clic en Proyectos de Visual Basic en Tipos de proyectoy, a continuación, haga clic en ASP.NET aplicación web en Plantillas.
En el cuadro de diálogo Nuevo proyecto , observe que el cuadro Nombre no está disponible (aparece atenuado). El cuadro Ubicación contiene el texto siguiente (o similar):
http://localhost/WebApplication1
Cambie la ubicación a y, a
http://localhost/SummaryRow
continuación, haga clic en Aceptar. Se crea un nuevo proyecto, que incluye un formulario web denominado WebForm1.aspx.En Explorador de soluciones, haga doble clic en WebForm1.aspx.
Arrastre un control DataGrid desde el cuadro de herramientas al formulario.
Haga clic con el botón derecho en el control DataGrid y, a continuación, haga clic en Formato automático. Haga clic en Colorido 1 y, a continuación, haga clic en Aceptar.
Haga clic con el botón derecho en el control DataGrid y, a continuación, haga clic en Propiedades. En el cuadro de diálogo Propiedades , cambie el valor de la propiedad ShowFooter a True.
Escritura de código para acceder a la base de datos
En esta sección, usará la vista Totales de ventas por importe que se encuentra en la base de datos Northwind para calcular el resumen del campo SaleAmount. La vista Totales de ventas por importe incluye los campos Orders, CompanyName y SaleAmount.
En el IDE, haga clic con el botón derecho en el formulario web y, a continuación, haga clic en Ver código.
En la ventana de código subyacente, agregue el código siguiente a la parte superior de la página:
Imports System.Data Imports System.Data.SqlClient
Agregue el código siguiente en la sección de declaración de clase:
Private myTotal As System.Double 'This variable tracks the running total.
Reemplace el código del
Page_Load
evento por el código siguiente: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 el cadena de conexión según corresponda para su entorno.
Uso del evento ItemDataBound
El ItemDataBound
evento se genera después de que un elemento esté enlazado a datos al control DataGrid. Este evento le ofrece la última oportunidad de acceder al elemento de datos antes de que aparezca en el cliente. Una vez generado este evento, el elemento de datos es null y ya no está disponible.
Para cada elemento enlazado a datos, debe comprobar la ItemType
propiedad . Si ItemType
es de tipo Item
o AlternatingItem
, recibirá el valor de la última celda del elemento, que contiene el valor SaleAmount. En este ejemplo, agregará este valor a la variable de resumen en ejecución. ItemType
Cuando es Footer
, recibe el total de todas las filas. Por lo tanto, asigne el valor de la variable de resumen al valor de texto de la última celda.
Nota:
Este código usa expresiones de formato para proporcionar una apariencia uniforme de los datos SaleAmount.
Agregue el código siguiente después del 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
Compilación del proyecto y prueba del código
- En el menú Archivo, haga clic en Guardar todo.
- On the Build menu, click Build Solution.
- En Explorador de soluciones, haga clic con el botón derecho en la página .aspx y, a continuación, haga clic en Ver en el explorador. La página .aspx aparece en el explorador y DataGrid muestra las columnas OrderID, CompanyName y SaleAmount. Observe que el pie de página muestra el total de la columna SaleAmount.
Referencias
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de