Jak utworzyć wiersz podsumowania dla usługi DataGrid w ASP.NET przy użyciu programu Visual Basic .NET

W tym artykule krok po kroku opisano sposób tworzenia wiersza podsumowania dla kontrolki DataGrid w ASP.NET przy użyciu programu Visual Basic .NET.

Oryginalna wersja produktu: Visual Basic .NET
Oryginalny numer KB: 313154

Podsumowanie

W tym artykule utworzysz projekt platformy .NET w języku Visual Basic, dodaj kod, aby uzyskać dostęp do widoku o nazwie Sales Totals by Amount z bazy danych Northwind , a następnie powiązać sumę sprzedaży według kwoty z widokiem DataGrid. W tym przykładzie użyto ItemDataBound zdarzenia usługi DataGrid do sumy pola SaleAmount podczas powiązania danych z usługą DataGrid. W tym przykładzie użyto również stopki usługi DataGrid do wyświetlenia podsumowania lub sum.

W tym artykule odwołuje się do przestrzeni System.Data.SqlClientnazw biblioteki klas programu Microsoft .NET Framework.

Uwaga / Notatka

Aby zapoznać się z wersją platformy .NET programu Microsoft Visual C# tego artykułu, zobacz 326339.

Wymagania

Na poniższej liście przedstawiono zalecany sprzęt, oprogramowanie, infrastrukturę sieciową i wymagane pakiety serwisowe:

  • Microsoft Windows
  • Microsoft .NET Framework
  • Microsoft Visual Studio .NET
  • Microsoft Internet Information Services (IIS)
  • Program Microsoft SQL Server 7.0 lub nowszy i baza danych Northwind

Uwaga / Notatka

Baza danych Northwind jest dołączona do serwera SQL sServer 7.0 lub nowszego.

Tworzenie projektu platformy .NET w języku Visual Basic i dodawanie usługi DataGrid

W tej sekcji utworzysz projekt .NET języka Visual Basic, wybierz format usługi DataGrid, a następnie ustaw usługę DataGrid, aby wyświetlić stopkę. Ponieważ używasz stopki do wyświetlania podsumowania, ważne jest, aby wyświetlić stopkę.

Uwaga / Notatka

Domyślnie właściwość ShowFooter jest wyłączona.

  1. Uruchom program Visual Studio .NET. Zostanie wyświetlone środowisko IDE .NET programu Visual Studio.

  2. W menu Plik wskaż polecenie Nowy, a następnie kliknij Projekt.

  3. W oknie dialogowym Nowy projekt kliknij pozycję Projekty Visual Basic w obszarze Typy projektów, a następnie kliknij pozycję ASP.NET aplikacja internetowa w obszarze Szablony.

  4. W oknie dialogowym Nowy projekt zwróć uwagę, że pole Nazwa jest niedostępne (jest wyświetlane wygaszone). Pole Lokalizacja zawiera następujący tekst (lub podobny):
    http://localhost/WebApplication1

    Zmień lokalizację na http://localhost/SummaryRow, a następnie kliknij przycisk OK. Zostanie utworzony nowy projekt zawierający formularz internetowy o nazwie WebForm1.aspx.

  5. W Eksplorator rozwiązań kliknij dwukrotnie WebForm1.aspx.

  6. Przeciągnij kontrolkę DataGrid z przybornika do formularza.

  7. Kliknij prawym przyciskiem myszy kontrolkę DataGrid, a następnie kliknij pozycję Autoformatuj. Kliknij pozycję Kolorowa 1, a następnie kliknij przycisk OK.

  8. Kliknij prawym przyciskiem myszy kontrolkę DataGrid , a następnie kliknij polecenie Właściwości. W oknie dialogowym Właściwości zmień wartość właściwości ShowFooter na True.

Pisanie kodu w celu uzyskania dostępu do bazy danych

W tej sekcji użyjesz widoku Sales Totals by Amount (Sumy sprzedaży według kwoty) znajdującego się w bazie danych Northwind , aby obliczyć podsumowanie pola SaleAmount. Widok Sales Totals by Amount (Sumy sprzedaży według kwoty) zawiera pola Orders (Zamówienia), CompanyName (Nazwa firmy) i SaleAmount (Kwota sprzedaży).

  1. W środowisku IDE kliknij prawym przyciskiem myszy formularz internetowy, a następnie kliknij polecenie Wyświetl kod.

  2. W oknie kodu dodaj następujący kod w górnej części strony:

    Imports System.Data
    Imports System.Data.SqlClient
    
  3. Dodaj następujący kod w sekcji deklaracji klasy:

    Private myTotal As System.Double 'This variable tracks the running total.
    
  4. Zastąp kod w Page_Load zdarzeniu następującym kodem:

    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. Zmodyfikuj parametry połączenia odpowiednio dla danego środowiska.

Używanie zdarzenia ItemDataBound

Zdarzenie ItemDataBound jest zgłaszane po tym, jak element jest danymi powiązanymi z kontrolką DataGrid. To zdarzenie daje ostatnią możliwość uzyskania dostępu do elementu danych, zanim pojawi się on na kliencie. Po wystąpieniu tego zdarzenia element danych ma wartość null i nie jest już dostępny.

Dla każdego powiązanego ItemType elementu należy sprawdzić właściwość . Jeśli ItemType jest typu Item lub AlternatingItem, otrzymasz wartość z ostatniej komórki elementu, która zawiera wartość SaleAmount. W tym przykładzie dodasz tę wartość do uruchomionej zmiennej podsumowania. Gdy wartość ItemType to Footer, otrzymasz sumę ze wszystkich wierszy. W związku z tym przypisujesz wartość zmiennej podsumowania do wartości tekstowej ostatniej komórki.

Uwaga / Notatka

Ten kod używa wyrażeń formatowania, aby zapewnić jednolity wygląd danych SaleAmount.

Dodaj następujący kod po zdarzeniu 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

Kompilowanie projektu i testowanie kodu

  1. W menu Plik, kliknij pozycję Zapisz wszystkie.
  2. W menu Kompilacja kliknij pozycję Kompiluj rozwiązanie.
  3. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy stronę .aspx, a następnie kliknij polecenie Wyświetl w przeglądarce. Strona .aspx jest wyświetlana w przeglądarce, a usługa DataGrid wyświetla kolumny OrderID, CompanyName i SaleAmount. Zwróć uwagę, że stopka wyświetla sumę kolumny SaleAmount.

Źródła