Tworzenie wiersza podsumowania dla kontrolki DataGrid przy użyciu języka Visual C# w ASP.NET
W tym artykule opisano sposób tworzenia wiersza podsumowania dla kontrolki DataGrid przy użyciu języka Visual C# w ASP.NET.
Oryginalna wersja produktu: Visual C#
Oryginalny numer KB: 326339
Podsumowanie
W tym artykule utworzysz projekt platformy .NET w języku Visual C#, dodasz kod, aby uzyskać dostęp do widoku Sumy sprzedaży według kwoty z bazy danych Northwind , a następnie powiązasz widok Sumy sprzedaży według kwoty z usługą DataGrid. W tym przykładzie użyto ItemDataBound
zdarzenia datagrid, aby zsumować SaleAmount
pole po powiązaniu danych z usługą DataGrid. W tym przykładzie użyto również stopki usługi DataGrid do wyświetlenia podsumowania lub sum.
Aby zapoznać się z wersją programu Microsoft Visual Basic dla platformy .NET w tym artykule, zobacz How to create a summary row for a DataGrid in ASP.NET by using Visual Basic .NET (Jak utworzyć wiersz podsumowania dla usługi DataGrid w ASP.NET przy użyciu platformy .NET w języku Visual Basic).
W tym artykule opisano następującą przestrzeń nazw System.Data.SqlClient
biblioteki klas .NET Framework .
Wymagania
Na poniższej liście przedstawiono zalecany sprzęt, oprogramowanie, infrastrukturę sieciową i dodatki Service Pack, które są wymagane:
- System Windows
- .NET Framework
- Visual Studio .NET
- Oprogramowanie Internet Information Services (IIS)
- SQL Server wersji 7.0 lub nowszej oraz bazy danych northwind
Uwaga
Baza danych Northwind jest dołączona do SQL Server 7.0 i nowszych.
Tworzenie projektu platformy .NET w języku Visual C# i dodawanie kontrolki DataGrid
W tej sekcji utworzysz projekt platformy .NET w języku Visual C#, wybierzesz format dla usługi DataGrid, a następnie ustawisz usługę DataGrid tak, aby wyświetlała stopkę. Ponieważ stopka jest używana do wyświetlania podsumowania, ważne jest, aby była wyświetlana stopka.
Uwaga
Domyślnie właściwość ShowFooter jest wyłączona.
Uruchom program Visual Studio .NET. Zostanie wyświetlone zintegrowane środowisko programistyczne programu Visual Studio (IDE).
W menu Plik wskaż polecenie Nowy, a następnie kliknij Projekt.
W oknie dialogowym Nowy projekt kliknij pozycję Projekty Visual C# 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 wygaszone). Pole Lokalizacja zawiera tekst (lub podobny)
http://localhost/WebApplication1
.Zmień lokalizację na
http://localhost/SummaryRow
, a następnie kliknij przycisk OK. Tworzony jest 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 pozycję DataGrid, a następnie kliknij pozycję Autoformatuj. Kliknij pozycję Kolorowe 1, a następnie kliknij przycisk OK.
Kliknij prawym przyciskiem myszy pozycję DataGrid, a następnie kliknij pozycję 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 Sumy sprzedaży według kwoty znajdującego się w bazie danych Northwind , aby obliczyć podsumowanie SaleAmount
pola. Widok Sumy sprzedaży według kwoty zawiera Orders
pola , CompanyName
i SaleAmount
.
W środowisku IDE programu Visual Studio .NET kliknij prawym przyciskiem myszy formularz internetowy, a następnie kliknij pozycję Wyświetl kod.
W oknie za kodem dodaj następujący kod w górnej części strony:
using System.Data.SqlClient;
Dodaj następujący kod w sekcji deklaracji klasy:
private double myTotal; //This variable tracks the running total.
Zastąp kod w zdarzeniu
Page_Load
następującym kodem: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 (); }
Zmodyfikuj parametry połączenia odpowiednio do środowiska.
Rozwiń formularz internetowy Projektant wygenerowany region kodu, a następnie dodaj następującą instrukcję
InitializeComponent
w funkcji:this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
Używanie zdarzenia ItemDataBound
Zdarzenie ItemDataBound
jest wywoływane po tym, jak element jest powiązany z kontrolką DataGrid. To zdarzenie daje ostatnią możliwość uzyskania dostępu do elementu danych przed jego wyświetleniem na kliencie. Po zgłoszeniu tego zdarzenia element danych ma wartość null i nie jest już dostępny.
Dla każdego elementu powiązanego z danymi należy sprawdzić właściwość ItemType
. Jeśli ItemType
jest typu Item
lub AlternatingItem
, otrzymasz wartość z ostatniej komórki elementu, która zawiera SaleAmount
wartość. W tym przykładzie dodasz tę wartość do uruchomionej zmiennej podsumowania. ItemType
Gdy wartość to Footer
, otrzymasz sumę ze wszystkich wierszy. W związku z tym należy przypisać wartość zmiennej sumaryczne do wartości tekstowej ostatniej komórki.
Uwaga
Ten kod używa wyrażeń formatowania, aby zapewnić jednolity SaleAmount
wygląd danych.
Dodaj następujący kod po zdarzeniu 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;
}
}
Tworzenie projektu i testowanie kodu
- W menu Plik kliknij pozycję Zapisz wszystko.
- W menu Kompilacja kliknij pozycję Kompiluj rozwiązanie.
- W Eksplorator rozwiązań kliknij prawym przyciskiem myszy stronę .aspx, a następnie kliknij pozycję Wyświetl w przeglądarce. Strona .aspx zostanie wyświetlona w przeglądarce, a w usłudze DataGrid zostaną wyświetlone kolumny OrderID, CompanyName i SaleAmount . Zwróć uwagę, że stopka wyświetla sumę kolumny SaleAmount .
Informacje
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla