Visual Basic .NET kullanarak ASP.NET'da DataGrid için özet satırı oluşturma
Bu adım adım makalede, Visual Basic .NET kullanılarak ASP.NET'da DataGrid denetimi için özet satırı oluşturma adımları açıklanmaktadır.
Orijinal ürün sürümü: Visual Basic .NET
Özgün KB numarası: 313154
Özet
Bu makalede bir Visual Basic .NET projesi oluşturacak, Northwind veritabanından Sales Totals by Amount adlı görünüme 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, Verileri DataGrid'e bağladığınızda SaleAmount alanının toplamını almak için DataGrid olayını kullanır ItemDataBound
. Bu örnek, özeti veya toplamları görüntülemek için DataGrid'in alt bilgisini de kullanır.
Bu makale, Microsoft .NET Framework Sınıf Kitaplığı ad alanını System.Data.SqlClient
ifade eder.
Not
Bu makalenin Microsoft Visual C# .NET sürümü için bkz. 326339.
Gereksinimler
Aşağıdaki listede önerilen donanım, yazılım, ağ altyapısı ve gerekli hizmet paketleri özetlenmiştir:
- Microsoft Windows
- Microsoft .NET Framework
- Microsoft Visual Studio .NET
- Microsoft Internet Information Services (IIS)
- Microsoft SQL Server 7.0 veya üzeri ve Northwind veritabanı
Not
Northwind veritabanı SQL sServer 7.0 ve sonraki sürümlere dahildir.
Visual Basic .NET projesi oluşturma ve DataGrid'i ekleme
Bu bölümde bir Visual Basic .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 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 Basic 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 aşağıdaki metni (veya benzerini) içerir:
http://localhost/WebApplication1
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 denetimine 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 denetimine sağ tıklayın ve ardından Ö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, SalesAmount alanının özetini hesaplamak için 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ü Siparişler, ŞirketAdı ve SaleAmount alanlarını içerir.
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:
Imports System.Data Imports System.Data.SqlClient
Sınıf bildirimi bölümüne aşağıdaki kodu ekleyin:
Private myTotal As System.Double 'This variable tracks the running total.
olaydaki
Page_Load
kodu aşağıdaki kodla değiştirin: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
bağlantı dizesi ortamınıza uygun şekilde değiştirin.
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
, öğenin SaleAmount değerini içeren 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, SaleAmount verileri için tekdüzen bir görünüm sağlamak için biçimlendirme ifadelerini kullanır.
Olaydan sonra Page_Load
aşağıdaki kodu ekleyin:
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
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ünür 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