Come creare una riga di riepilogo per un oggetto DataGrid in ASP.NET usando Visual Basic .NET

Questo articolo dettagliato descrive come creare una riga di riepilogo per un controllo DataGrid in ASP.NET usando Visual Basic .NET.

Versione originale del prodotto: Visual Basic .NET
Numero KB originale: 313154

Riepilogo

In questo articolo si crea un progetto .NET di Visual Basic, si aggiunge il codice per accedere alla vista denominata Sales Totals by Amount dal database Northwind e quindi si associa la vista Sales Totals by Amount a DataGrid. Questo esempio usa l'evento ItemDataBound di DataGrid per totalizzare il campo SaleAmount quando si associano i dati a DataGrid. Questo esempio usa anche il piè di pagina di DataGrid per visualizzare il riepilogo o i totali.

Questo articolo fa riferimento allo spazio dei nomi System.Data.SqlClientdella libreria di classi di Microsoft .NET Framework.

Nota

Per una versione di Microsoft Visual C# .NET di questo articolo, vedere 326339.

Requisiti

L'elenco seguente descrive l'hardware, il software, l'infrastruttura di rete e i Service Pack consigliati necessari:

  • Microsoft Windows
  • Microsoft .NET Framework
  • Microsoft Visual Studio .NET
  • Microsoft Internet Information Services (IIS)
  • Microsoft SQL Server 7.0 o versione successiva e il database Northwind

Nota

Il database Northwind è incluso in SQL sServer 7.0 e versioni successive.

Creare un progetto .NET di Visual Basic e aggiungere DataGrid

In questa sezione si crea un progetto .NET di Visual Basic, 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.

  1. Avviare Visual Studio .NET. Viene visualizzato l'IDE .NET di Visual Studio.

  2. Scegliere Nuovo dal menu File, quindi fare clic su Progetto.

  3. Nella finestra di dialogo Nuovo progetto fare clic su Progetti Visual Basic in Tipi di progetto e quindi fare clic su ASP.NET'applicazione Web in Modelli.

  4. Nella finestra di dialogo Nuovo progetto si noti che la casella Nome non è disponibile (viene visualizzata in grigio). La casella Percorso contiene il testo seguente (o simile):
    http://localhost/WebApplication1

    Modificare il percorso in http://localhost/SummaryRowe quindi fare clic su OK. Viene creato un nuovo progetto, che include un Web Form denominato WebForm1.aspx.

  5. In Esplora soluzioni fare doppio clic su WebForm1.aspx.

  6. Trascinare un controllo DataGrid dalla casella degli strumenti al form.

  7. Fare clic con il pulsante destro del mouse sul controllo DataGrid e quindi scegliere Formato automatico. Fare clic su Colorato 1 e quindi su OK.

  8. Fare clic con il pulsante destro del mouse sul controllo 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 campo SaleAmount. La visualizzazione Totali vendite per importo include i campi Orders, CompanyName e SaleAmount.

  1. Nell'IDE fare clic con il pulsante destro del mouse sul Web Form e quindi scegliere Visualizza codice.

  2. Nella finestra code-behind aggiungere il codice seguente all'inizio della pagina:

    Imports System.Data
    Imports System.Data.SqlClient
    
  3. Aggiungere il codice seguente nella sezione della dichiarazione di classe:

    Private myTotal As System.Double 'This variable tracks the running total.
    
  4. Sostituire il codice nell'evento Page_Load con il codice seguente:

    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
    
  5. Modificare il stringa di connessione in base alle esigenze dell'ambiente.

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 valore SaleAmount. 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 dati SaleAmount.

Aggiungere il codice seguente dopo l'evento Page_Load :

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

Compilare il progetto e testare il codice

  1. Scegliere Salva tutto dal menu File.
  2. Nel menu Compila fare clic su Compila soluzione.
  3. 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