ASP.NET'da Visual C# kullanarak DataGrid denetimi için özet satırı oluşturma
Bu makalede, ASP.NET'de Visual C# kullanarak DataGrid denetimi için özet satırı oluşturma açıklanmaktadır.
Orijinal ürün sürümü: Visual C#
Özgün KB numarası: 326339
Özet
Bu makalede bir Visual C# .NET projesi oluşturacak, Northwind veritabanından Tutara Göre Satış Toplamları görünümüne erişmek için kod ekleyecek ve ardından Sales Totals by Amount görünümünü DataGrid'e bağlayacaksınız. Bu örnek, DataGrid'e veri bağladığınızda alanın toplamını SaleAmount
almak için DataGrid olayını kullanırItemDataBound
. Bu örnek, özeti veya toplamları görüntülemek için DataGrid'in alt bilgisini de kullanır.
Bu makalenin Microsoft Visual Basic .NET sürümü için bkz. Visual Basic .NET kullanarak ASP.NET'da DataGrid için özet satırı oluşturma.
Bu makale, aşağıdaki .NET Framework Sınıf Kitaplığı ad alanına System.Data.SqlClient
başvurur.
Gereksinimler
Aşağıdaki listede önerilen donanım, yazılım, ağ altyapısı ve gerekli hizmet paketleri özetlenmiştir:
- Windows
- .NET Framework
- Visual Studio .NET
- Internet Information Services (IIS)
- SQL Server 7.0 veya üzeri ve Northwind veritabanı
Not
Northwind veritabanı, SQL Server 7.0 ve sonraki sürümlere dahildir.
Visual C# .NET projesi oluşturma ve DataGrid denetimini ekleme
Bu bölümde bir Visual C# .NET projesi oluşturacak, DataGrid için bir biçim seçecek ve ardından DataGrid'i alt bilgiyi görüntüleyecek şekilde ayarlayacaksınız. Özeti görüntülemek için alt bilgiyi kullandığınızdan, alt bilgiyi görüntülemeniz önemlidir.
Not
Varsayılan olarak ShowFooter özelliği kapalıdır.
Visual Studio .NET'i başlatın. Visual Studio .NET tümleşik geliştirme ortamı (IDE) görüntülenir.
Dosya menüsünde, Yeni'nin üzerine gelin ve Proje'ye tıklayın.
Yeni Proje iletişim kutusunda, Proje Türleri'nin altında Visual C# Projeleri'ne tıklayın ve ardından Şablonlar'ın altında Web Uygulaması'nı ASP.NET tıklayın.
Yeni Proje iletişim kutusunda, Ad kutusunun kullanılamadığını (soluk göründüğüne) dikkat edin. Konum kutusu metnini (veya benzerini)
http://localhost/WebApplication1
içerir.Konumu olarak
http://localhost/SummaryRow
değiştirin ve tamam'a tıklayın. WebForm1.aspx adlı bir Web Formu içeren yeni bir proje oluşturulur.Çözüm Gezgini'da WebForm1.aspx çift tıklayın.
DataGrid denetimini araç kutusundan forma sürükleyin.
DataGrid'e sağ tıklayın ve ardından Otomatik Biçim'e tıklayın. Renkli 1'e ve ardından Tamam'a tıklayın.
DataGrid'e sağ tıklayın ve özellikler'e tıklayın. Özellikler iletişim kutusunda ShowFooter özelliğinin değerini True olarak değiştirin.
Veritabanına erişmek için kod yazma
Bu bölümde, alanın özetini hesaplamak için SaleAmount
Northwind veritabanında bulunan Tutara Göre Satış Toplamları görünümünü kullanırsınız. Tutara Göre Satış Toplamları görünümü , CompanyName
ve SaleAmount
alanlarını içerirOrders
.
Visual Studio .NET IDE'de Web Formu'na sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.
Arka planda kod penceresinde, sayfanın en üstüne aşağıdaki kodu ekleyin:
using System.Data.SqlClient;
Sınıf bildirimi bölümüne aşağıdaki kodu ekleyin:
private double myTotal; //This variable tracks the running total.
olaydaki
Page_Load
kodu aşağıdaki kodla değiştirin: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 (); }
bağlantı dizesi ortamınıza uygun şekilde değiştirin.
Oluşturulan kod bölgesini Tasarım Aracı Web Formu'nu genişletin ve işleve
InitializeComponent
aşağıdaki deyimi ekleyin:this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
ItemDataBound olayını kullanma
Olay ItemDataBound
, bir öğe DataGrid denetimine bağlı veriler olduktan sonra oluşturulur. Bu olay, istemcide görüntülenmeden önce veri öğesine erişmeniz için size son fırsatı verir. Bu olay tetiklendiğinde veri öğesi null olur ve artık kullanılamaz.
Veriye bağlı olan her öğe için özelliğini denetlemeniz ItemType
gerekir. veya AlternatingItem
türündeyse ItemType
Item
, değeri içeren SaleAmount
öğenin son hücresinden değeri alırsınız. Bu örnekte, bu değeri çalışan özet değişkenine eklersiniz. ItemType
olduğundaFooter
, tüm satırlardan toplamı alırsınız. Bu nedenle, özet değişkeninin değerini son hücrenin metin değerine atarsınız.
Not
Bu kod, verileri tek biçimli bir görünüm sağlamak için SaleAmount
biçimlendirme ifadelerini kullanır.
Olaydan sonra Page_Load
aşağıdaki kodu ekleyin:
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;
}
}
Projeyi oluşturma ve kodu test etme
- Dosya menüsünde Tümünü Kaydet'e tıklayın.
- Derleme menüsünde Çözüm Oluştur'a tıklayın.
- Çözüm Gezgini'da, .aspx sayfasına sağ tıklayın ve ardından Tarayıcıda Görüntüle'ye tıklayın. .aspx sayfası tarayıcıda görüntülenir ve DataGrid OrderID, CompanyName ve SaleAmount sütunlarını görüntüler. Alt bilgide SaleAmount sütununun toplamının görüntülendiğini görebilirsiniz.
Başvurular
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin