Erstellen einer Zusammenfassungszeile für ein DataGrid in ASP.NET mithilfe von Visual Basic .NET
In diesem Schritt-für-Schritt-Artikel wird beschrieben, wie Sie eine Sammelzeile für ein DataGrid-Steuerelement in ASP.NET mithilfe von Visual Basic .NET erstellen.
Ursprüngliche Produktversion: Visual Basic .NET
Ursprüngliche KB-Nummer: 313154
Zusammenfassung
In diesem Artikel erstellen Sie ein Visual Basic .NET-Projekt, fügen Code für den Zugriff auf die Ansicht Sales Totals by Amount aus der Northwind-Datenbank hinzu, und binden dann die Ansicht Verkaufssummen nach Betrag an das DataGrid. In diesem Beispiel wird das ItemDataBound Ereignis des DataGrid verwendet, um das Feld SaleAmount insgesamt zu erstellen, wenn Sie die Daten an das DataGrid binden. In diesem Beispiel wird auch die Fußzeile des DataGrid verwendet, um die Zusammenfassung oder die Summen anzuzeigen.
Dieser Artikel bezieht sich auf den Namespace "Microsoft .NET Framework Class System.Data.SqlClient Library".
Hinweis
Eine Microsoft Visual C# .NET-Version dieses Artikels finden Sie unter 326339.
Anforderungen
In der folgenden Liste sind die empfohlenen Hardware-, Software-, Netzwerkinfrastruktur- und Service Packs aufgeführt, die erforderlich sind:
- Microsoft Windows
- Microsoft .NET Framework
- Microsoft Visual Studio .NET
- Microsoft-Internetinformationsdienste (IIS)
- Microsoft SQL Server 7.0 oder höher und die Northwind-Datenbank
Hinweis
Die Northwind-Datenbank ist in SQL sServer 7.0 und höher enthalten.
Erstellen eines Visual Basic .NET-Projekts und Hinzufügen des DataGrid
In diesem Abschnitt erstellen Sie ein Visual Basic .NET-Projekt, wählen ein Format für das DataGrid aus, und legen dann das DataGrid so fest, dass die Fußzeile angezeigt wird. Da Sie die Fußzeile zum Anzeigen der Zusammenfassung verwenden, ist es wichtig, dass Sie die Fußzeile anzeigen.
Hinweis
Standardmäßig ist die ShowFooter-Eigenschaft deaktiviert.
Starten Sie Visual Studio .NET. Die Visual Studio .NET-IDE wird angezeigt.
Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.
Klicken Sie im Dialogfeld Neue Project unter Project Typen auf Visual Basic Projekte, und klicken Sie dann unter Vorlagen auf ASP.NET Webanwendung.
Beachten Sie im Dialogfeld "Neu Project", dass das Feld "Name" nicht verfügbar ist (es wird abgeblendet angezeigt). Das Feld Position enthält den folgenden Text (oder ähnlich):
http://localhost/WebApplication1Ändern Sie den Speicherort in
http://localhost/SummaryRow, und klicken Sie dann auf OK. Ein neues Projekt wird erstellt, das ein Webformular mit dem Namen WebForm1.aspx enthält.Doppelklicken Sie im Projektmappen-Explorer auf "WebForm1.aspx".
Ziehen Sie ein DataGrid-Steuerelement aus der Toolbox in das Formular.
Klicken Sie mit der rechten Maustaste auf das DataGrid-Steuerelement, und klicken Sie dann auf "AutoFormat". Klicken Sie auf "Farbenfarbig 1" und dann auf "OK".
Klicken Sie mit der rechten Maustaste auf das DataGrid-Steuerelement, und klicken Sie dann auf "Eigenschaften". Ändern Sie im Dialogfeld Eigenschaften den Wert der ShowFooter-Eigenschaft in True.
Schreiben von Code für den Zugriff auf die Datenbank
In diesem Abschnitt verwenden Sie die Ansicht Verkaufssummen nach Betrag, die sich in der Northwind-Datenbank befindet, um die Zusammenfassung für das Feld SaleAmount zu berechnen. Die Ansicht Verkaufssummen nach Betrag enthält die Felder Bestellungen, CompanyName und SaleAmount.
Klicken Sie in der IDE mit der rechten Maustaste auf das Webformular, und klicken Sie dann auf Code anzeigen.
Fügen Sie im CodeBehind-Fenster oben auf der Seite den folgenden Code hinzu:
Imports System.Data Imports System.Data.SqlClientFügen Sie den folgenden Code im Abschnitt zur Klassendeklaration hinzu:
Private myTotal As System.Double 'This variable tracks the running total.Ersetzen Sie den Code im
Page_LoadEreignis durch den folgenden Code: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Ändern Sie die Verbindungszeichenfolge entsprechend Ihrer Umgebung.
Verwenden des ItemDataBound-Ereignisses
Das ItemDataBound Ereignis wird ausgelöst, nachdem ein Element an das DataGrid-Steuerelement gebunden ist. Dieses Ereignis bietet Ihnen die letzte Möglichkeit, auf das Datenelement zuzugreifen, bevor es auf dem Client angezeigt wird. Nachdem dieses Ereignis ausgelöst wurde, ist das Datenelement NULL und nicht mehr verfügbar.
Für jedes Element, das datengebunden ist, müssen Sie die ItemType Eigenschaft überprüfen. If ItemType is of type or , you receive the value from the last cell of the Item AlternatingItem item, which contains the SaleAmount value. In diesem Beispiel fügen Sie diesen Wert der ausgeführten Zusammenfassungsvariablen hinzu. Wenn ItemType dies der Footer Ist-Wert ist, erhalten Sie die Summe aus allen Zeilen. Daher weisen Sie den Wert der Zusammenfassungsvariablen dem Textwert der letzten Zelle zu.
Hinweis
Dieser Code verwendet Formatierungsausdrücke, um ein einheitliches Aussehen für die SaleAmount-Daten bereitzustellen.
Fügen Sie nach dem Ereignis den folgenden Code Page_Load hinzu:
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
Erstellen des Projekts und Testen des Codes
- Klicken Sie im Menü Datei auf Alles speichern.
- On the Build menu, click Build Solution.
- Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die ASPX-Seite, und klicken Sie dann im Browser auf "Anzeigen". Die ASPX-Seite wird im Browser angezeigt, und das DataGrid zeigt die Spalten OrderID, CompanyName und SaleAmount an. Beachten Sie, dass die Fußzeile die Summe der SaleAmount-Spalte anzeigt.