Cómo crear una fila de resumen para un 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 del producto original: Visual Basic .NET
Número KB original: 313154
Resumen
En este artículo, se crea un proyecto de .NET de Visual Basic, se agrega código para obtener acceso a la vista denominada Sales Totals por importe desde la base de datos Northwind y, a continuación, se enlaza la vista Sales Totals por importe a dataGrid. En este ejemplo se usa el evento DataGrid para totalr el campo ItemDataBound 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.
Este artículo hace referencia al espacio de nombres .NET Framework biblioteca de clases de Microsoft System.Data.SqlClient .
Nota
Para obtener una versión de Microsoft Visual C# .NET de este artículo, vea 326339.
Requisitos
En la siguiente lista se describen los paquetes de hardware, software, infraestructura de red y 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 SQL sServer 7.0 y versiones posteriores.
Crear un Visual Basic .NET y agregar datagrid
En esta sección, se crea un Visual Basic .NET, se selecciona un formato para DataGrid y, a continuación, se establece 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 Visual Studio IDE de .NET.
En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto.
En el cuadro de diálogo Nuevo Project, haga clic en Visual Basic proyectos en tipos Project y, a continuación, haga clic ASP.NET aplicación web en Plantillas.
En el cuadro de diálogo Nuevo Project, observe que el cuadro Nombre no está disponible (aparece atenuado). El cuadro Ubicación contiene el texto siguiente (o similar):
http://localhost/WebApplication1Cambie la ubicación a
http://localhost/SummaryRowy, a continuación, haga clic en Aceptar. Se crea un nuevo proyecto, que incluye un formulario web denominado WebForm1.aspx.En el 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 secundario 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 secundario 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.
Escribir código para obtener acceso a la base de datos
En esta sección, se usa 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 Pedidos, CompanyName y SaleAmount.
En el IDE, haga clic con el botón secundario en el formulario web y, a continuación, haga clic en Ver código.
En la ventana de código subyacente, agregue el siguiente código a la parte superior de la página:
Imports System.Data Imports System.Data.SqlClientAgregue el siguiente código en la sección declaración de clase:
Private myTotal As System.Double 'This variable tracks the running total.Reemplace el código del
Page_Loadevento 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 SubModifique la cadena de conexión según corresponda para su entorno.
Usar el evento ItemDataBound
El ItemDataBound evento se genera después de que un elemento es datos enlazados al control DataGrid. Este evento le ofrece la última oportunidad de obtener acceso al elemento de datos antes de que aparezca en el cliente. Después de que se genera 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 es de tipo o , recibirá el valor de la última celda del ItemType Item AlternatingItem elemento, que contiene el valor SaleAmount. En este ejemplo, se agrega este valor a la variable de resumen en ejecución. Cuando el ItemType es , recibe el total de todas las Footer filas. Por lo tanto, se asigna 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 de SaleAmount.
Agregue el siguiente código 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
Compilar el proyecto y probar el código
- En el menú Archivo, haga clic en Guardar todo.
- On the Build menu, click Build Solution.
- En el Explorador de soluciones, haga clic con el botón secundario en la página .aspx y, a continuación, haga clic en Ver en 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.