Erstellen einer Zusammenfassungszeile für ein DataGrid-Steuerelement mithilfe von Visual C# in ASP.NET
In diesem Artikel wird beschrieben, wie Sie mithilfe von Visual C# in ASP.NET eine Zusammenfassungszeile für ein DataGrid-Steuerelement erstellen.
Ursprüngliche Produktversion: Visual C#
Ursprüngliche KB-Nummer: 326339
Zusammenfassung
In diesem Artikel erstellen Sie ein Visual C#-.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 Sales Totals by Amount an das DataGrid. In diesem Beispiel wird das ItemDataBound
DataGrid-Ereignis verwendet, um das SaleAmount
Feld zu summieren, wenn Sie die Daten an dataGrid binden. In diesem Beispiel wird auch die Fußzeile von DataGrid verwendet, um die Zusammenfassung oder die Summen anzuzeigen.
Eine Microsoft Visual Basic .NET-Version dieses Artikels finden Sie unter Erstellen einer Zusammenfassungszeile für ein DataGrid in ASP.NET mithilfe von Visual Basic .NET.
Dieser Artikel bezieht sich auf den folgenden .NET Framework Klassenbibliothek-Namespace System.Data.SqlClient
.
Anforderungen
In der folgenden Liste sind die empfohlenen Hardware, Software, Netzwerkinfrastruktur und Service Packs aufgeführt, die erforderlich sind:
- Windows
- .NET Framework
- Visual Studio .NET
- Internetinformationsdienste (IIS)
- SQL Server 7.0 oder höher und die Northwind-Datenbank
Hinweis
Die Northwind-Datenbank ist in SQL Server 7.0 und höher enthalten.
Erstellen eines Visual C#-.NET-Projekts und Hinzufügen des DataGrid-Steuerelements
In diesem Abschnitt erstellen Sie ein Visual C# .NET-Projekt, wählen ein Format für dataGrid aus und legen dann dataGrid so fest, dass die Fußzeile angezeigt wird. Da Sie die Fußzeile verwenden, um die Zusammenfassung anzuzeigen, ist es wichtig, dass Sie die Fußzeile anzeigen.
Hinweis
Standardmäßig ist die ShowFooter-Eigenschaft deaktiviert.
Starten Sie Visual Studio .NET. Die integrierte Entwicklungsumgebung (IDE) von Visual Studio .NET wird angezeigt.
Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.
Klicken Sie im Dialogfeld Neues Projekt unter Projekttypen auf Visual C#-Projekte, und klicken Sie dann unter Vorlagen auf ASP.NET Webanwendung.
Beachten Sie im Dialogfeld Neues Projekt , dass das Feld Name nicht verfügbar ist (es wird abgeblendet angezeigt). Das Feld Speicherort enthält den Text (oder ähnlich).
http://localhost/WebApplication1
Ändern Sie den Speicherort in
http://localhost/SummaryRow
, und klicken Sie dann auf OK. Es wird ein neues Projekt erstellt, das ein Webformular mit dem Namen WebForm1.aspx enthält.Doppelklicken Sie Projektmappen-Explorer auf WebForm1.aspx.
Ziehen Sie ein DataGrid-Steuerelement aus der Toolbox in das Formular.
Klicken Sie mit der rechten Maustaste auf DataGrid, und klicken Sie dann auf Automatisches Formatieren. Klicken Sie auf Farbig 1 und dann auf OK.
Klicken Sie mit der rechten Maustaste auf DataGrid, 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 Sales Totals by Amount in der Northwind-Datenbank , um die Zusammenfassung für das SaleAmount
Feld zu berechnen. Die Ansicht Sales Totals by Amount enthält die Orders
Felder , CompanyName
und .SaleAmount
Klicken Sie in der Visual Studio .NET-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:
using System.Data.SqlClient;
Fügen Sie den folgenden Code im Abschnitt zur Klassendeklaration hinzu:
private double myTotal; //This variable tracks the running total.
Ersetzen Sie den Code im
Page_Load
-Ereignis durch den folgenden Code: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 (); }
Ändern Sie die Verbindungszeichenfolge entsprechend Ihrer Umgebung.
Erweitern Sie den WebFormular-Designer generierten Codebereich, und fügen Sie dann die folgende Anweisung in der
InitializeComponent
Funktion hinzu:this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
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. Wenn ItemType
vom Typ Item
oder AlternatingItem
ist, erhalten Sie den Wert aus der letzten Zelle des Elements, die den SaleAmount
Wert enthält. In diesem Beispiel fügen Sie diesen Wert der ausgeführten Zusammenfassungsvariablen hinzu. Wenn auf ItemType
festgelegt ist Footer
, erhalten Sie die Summe aus allen Zeilen. Daher weisen Sie den Wert der Summary-Variablen dem Textwert der letzten Zelle zu.
Hinweis
In diesem Code werden Formatierungsausdrücke verwendet, um ein einheitliches Aussehen für die SaleAmount
Daten bereitzustellen.
Fügen Sie nach dem Ereignis den Page_Load
folgenden Code hinzu:
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;
}
}
Erstellen des Projekts und Testen des Codes
- Klicken Sie im Menü Datei auf Alles speichern.
- On the Build menu, click Build Solution.
- Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf die Seite .aspx, und klicken Sie dann auf Im Browser anzeigen. Die Seite .aspx wird im Browser angezeigt, und dataGrid zeigt die Spalten OrderID, CompanyName und SaleAmount an. Beachten Sie, dass in der Fußzeile die Summe der Spalte SaleAmount angezeigt wird.
References
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für