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.SqlClientbaş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.

  1. Visual Studio .NET'i başlatın. Visual Studio .NET tümleşik geliştirme ortamı (IDE) görüntülenir.

  2. Dosya menüsünde, Yeni'nin üzerine gelin ve Proje'ye tıklayın.

  3. 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.

  4. Yeni Proje iletişim kutusunda, Ad kutusunun kullanılamadığını (soluk göründüğüne) dikkat edin. Konum kutusu metnini (veya benzerini) http://localhost/WebApplication1içerir.

    Konumu olarak http://localhost/SummaryRowdeğiştirin ve tamam'a tıklayın. WebForm1.aspx adlı bir Web Formu içeren yeni bir proje oluşturulur.

  5. Çözüm Gezgini'da WebForm1.aspx çift tıklayın.

  6. DataGrid denetimini araç kutusundan forma sürükleyin.

  7. 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.

  8. 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 SaleAmountNorthwind 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ü , CompanyNameve SaleAmount alanlarını içerirOrders.

  1. Visual Studio .NET IDE'de Web Formu'na sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.

  2. Arka planda kod penceresinde, sayfanın en üstüne aşağıdaki kodu ekleyin:

    using System.Data.SqlClient;
    
  3. Sınıf bildirimi bölümüne aşağıdaki kodu ekleyin:

    private double myTotal; //This variable tracks the running total.
    
  4. 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 ();
    }
    
  5. bağlantı dizesi ortamınıza uygun şekilde değiştirin.

  6. 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 AlternatingItemtüründeyse ItemTypeItem, 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

  1. Dosya menüsünde Tümünü Kaydet'e tıklayın.
  2. Derleme menüsünde Çözüm Oluştur'a tıklayın.
  3. Çö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