Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
Uruchom program Visual Studio .NET. Zostanie wyświetlone środowisko IDE .NET programu Visual Studio.
W menu Plik wskaż polecenie Nowy, a następnie kliknij Projekt.
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.
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/WebApplication1Zmień lokalizację na
http://localhost/SummaryRow, a następnie kliknij przycisk OK. Zostanie utworzony nowy projekt zawierający formularz internetowy o nazwie WebForm1.aspx.W Eksplorator rozwiązań kliknij dwukrotnie WebForm1.aspx.
Przeciągnij kontrolkę DataGrid z przybornika do formularza.
Kliknij prawym przyciskiem myszy kontrolkę DataGrid, a następnie kliknij pozycję Autoformatuj. Kliknij pozycję Kolorowa 1, a następnie kliknij przycisk OK.
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).
W środowisku IDE kliknij prawym przyciskiem myszy formularz internetowy, a następnie kliknij polecenie Wyświetl kod.
W oknie kodu dodaj następujący kod w górnej części strony:
Imports System.Data Imports System.Data.SqlClientDodaj następujący kod w sekcji deklaracji klasy:
Private myTotal As System.Double 'This variable tracks the running total.Zastąp kod w
Page_Loadzdarzeniu 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 SubZmodyfikuj 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
- W menu Plik, kliknij pozycję Zapisz wszystkie.
- W menu Kompilacja kliknij pozycję Kompiluj rozwiązanie.
- 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.