Creare una riga di riepilogo per un controllo DataGrid usando Visual C# in ASP.NET
Questo articolo descrive come creare una riga di riepilogo per un controllo DataGrid usando Visual C# in ASP.NET.
Versione originale del prodotto: Oggetto visivo C#
Numero KB originale: 326339
Riepilogo
In questo articolo si crea un progetto Visual C# .NET, si aggiunge il codice per accedere alla visualizzazione Totale vendite per importo dal database Northwind e quindi si associa la visualizzazione Totale vendite per importo a DataGrid. Questo esempio usa l'evento ItemDataBound
di DataGrid per totalizzare il SaleAmount
campo quando si associano i dati a DataGrid. Questo esempio usa anche il piè di pagina di DataGrid per visualizzare il riepilogo o i totali.
Per una versione di Microsoft Visual Basic .NET di questo articolo, vedere Come creare una riga di riepilogo per un controllo DataGrid in ASP.NET usando Visual Basic .NET.
Questo articolo fa riferimento allo spazio dei nomi System.Data.SqlClient
della libreria di classi .NET Framework seguente.
Requisiti
L'elenco seguente descrive l'hardware, il software, l'infrastruttura di rete e i Service Pack consigliati necessari:
- Windows
- .NET Framework
- Visual Studio .NET
- Internet Information Services (IIS)
- SQL Server 7.0 o versioni successive e il database Northwind
Nota
Il database Northwind è incluso in SQL Server 7.0 e versioni successive.
Creare un progetto .NET di Visual C# e aggiungere il controllo DataGrid
In questa sezione si crea un progetto Visual C# .NET, si seleziona un formato per DataGrid e quindi si imposta DataGrid per visualizzare il piè di pagina. Poiché si usa il piè di pagina per visualizzare il riepilogo, è importante visualizzare il piè di pagina.
Nota
Per impostazione predefinita, la proprietà ShowFooter è disattivata.
Avviare Visual Studio .NET. Viene visualizzato l'ambiente di sviluppo integrato (IDE) di Visual Studio .NET.
Scegliere Nuovo dal menu File, quindi fare clic su Progetto.
Nella finestra di dialogo Nuovo progetto fare clic su Progetti Visual C# in Tipi di progetto e quindi fare clic su ASP.NET'applicazione Web in Modelli.
Nella finestra di dialogo Nuovo progetto si noti che la casella Nome non è disponibile (viene visualizzata in grigio). La casella Percorso contiene il testo (o simile)
http://localhost/WebApplication1
.Modificare il percorso in
http://localhost/SummaryRow
e quindi fare clic su OK. Viene creato un nuovo progetto, che include un Web Form denominato WebForm1.aspx.In Esplora soluzioni fare doppio clic su WebForm1.aspx.
Trascinare un controllo DataGrid dalla casella degli strumenti al form.
Fare clic con il pulsante destro del mouse su DataGrid e quindi scegliere Formato automatico. Fare clic su Colorato 1 e quindi su OK.
Fare clic con il pulsante destro del mouse su DataGrid e quindi scegliere Proprietà. Nella finestra di dialogo Proprietà modificare il valore della proprietà ShowFooter su True.
Scrivere codice per accedere al database
In questa sezione viene utilizzata la visualizzazione Totale vendite per importo che si trova nel database Northwind per calcolare il riepilogo per il SaleAmount
campo. La visualizzazione Totali vendite per importo include i Orders
campi , CompanyName
e SaleAmount
.
Nell'IDE di Visual Studio .NET fare clic con il pulsante destro del mouse sul Web Form e quindi scegliere Visualizza codice.
Nella finestra code-behind aggiungere il codice seguente all'inizio della pagina:
using System.Data.SqlClient;
Aggiungere il codice seguente nella sezione della dichiarazione di classe:
private double myTotal; //This variable tracks the running total.
Sostituire il codice nell'evento
Page_Load
con il codice seguente: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 (); }
Modificare il stringa di connessione in base alle esigenze dell'ambiente.
Espandere il Web Form Designer'area di codice generata e quindi aggiungere l'istruzione seguente nella
InitializeComponent
funzione :this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
Usare l'evento ItemDataBound
L'evento ItemDataBound
viene generato dopo che un elemento è associato ai dati al controllo DataGrid. Questo evento offre l'ultima opportunità di accedere all'elemento dati prima che venga visualizzato nel client. Dopo la generazione di questo evento, l'elemento dati è Null e non è più disponibile.
Per ogni elemento associato a dati, è necessario controllare la ItemType
proprietà . Se ItemType
è di tipo Item
o AlternatingItem
, si riceve il valore dall'ultima cella dell'elemento, che contiene il SaleAmount
valore . In questo esempio si aggiunge questo valore alla variabile di riepilogo in esecuzione. ItemType
Quando è Footer
, si riceve il totale da tutte le righe. Di conseguenza, si assegna il valore della variabile di riepilogo al valore di testo dell'ultima cella.
Nota
Questo codice usa le espressioni di formattazione per fornire un aspetto uniforme per i SaleAmount
dati.
Aggiungere il codice seguente dopo l'evento Page_Load
:
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;
}
}
Compilare il progetto e testare il codice
- Scegliere Salva tutto dal menu File.
- Nel menu Compila fare clic su Compila soluzione.
- In Esplora soluzioni fare clic con il pulsante destro del mouse sulla pagina .aspx e quindi scegliere Visualizza nel browser. La pagina .aspx viene visualizzata nel browser e DataGrid visualizza le colonne OrderID, CompanyName e SaleAmount . Si noti che il piè di pagina visualizza il totale della colonna SaleAmount .
Riferimenti
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per