Hiyerarşik Görünüm Sayfası Oluşturma

DataTable’lar için İlişkiler Oluşturma

Örneğin, ADO.Net API’i kullanır ve veritabanı tablolarından veri çıkarırsınız. Hiyerarşik görünüm sayfası oluşturmak için bir DataSet tasarlamanız gerekir.

bazı tablolara dayalı nesne ve önce aralarında bir ilişki oluşturun. VS.NET’leri kullanınVeri Kümesi Tasarımcısı ilişkiyi oluşturmak için. İçinde

bu örnekte üç DataTable vardır: Müşteriler, Siparişler, Sipariş Ayrıntıları. Sayfa, tüm müşteri bilgilerini varsayılan olarak gösterir. Ne zaman

kullanıcı bir müşteriyi genişletir, ızgara müşterinin verdiği tüm siparişleri gösterir. Kullanıcı bir siparişi genişlettiğinde, ızgara ayrıntıları gösterir

bu düzenin. Veriler hiyerarşiktir: sipariş detayları siparişler altında, siparişler ise müşteriler altında listelenir.

Bunun çalışması için, veri tabloları arasında aşağıdaki ilişkilerin kurulması gerekir:

  1. DataTable Siparişlerinde bir yabancı anahtar oluşturun, anahtar alanı CustomerID’dir.

yapılacaklar:resim_alternatif_metin

  1. DataTable Sipariş Ayrıntılarında bir yabancı anahtar oluşturun, anahtar alanı OrderID’dir.

yapılacaklar:resim_alternatif_metin

DataSet Tasarımcısı artık şöyle görünür:

yapılacaklar:resim_alternatif_metin

Bağlama Çalışma Sayfası

şimdi kullanÇalışma Sayfaları Tasarımcısı çalışma sayfası için DataSource ve DataMember’ı ayarlamak ve veri alanı bağlama sütunlarını yapılandırmak için.

Denetim, bağlama nesnesi (genellikle bir DataRowView nesnesi) olan bir kayda karşılık gelen her satır için otomatik olarak bir + simgesi ekler.

çocuk görünümleri. + simgesine tıklandığında, kayıt alt görünümü gösterecek şekilde genişler. Aşağıdaki örnek,Çalışma Sayfaları Tasarımcısı bağlamak için

çalışma sayfasını kök üst DataTable Müşterilerine.

yapılacaklar:resim_alternatif_metin

Alt Tabloları Bağlama Sütunlarını Özelleştirme

Denetim, geliştiricilerin alt tabloların bağlama sütunlarını özelleştirmek için kullandıkları GridWeb.BindingChildView adlı bir olay sağlar. Bu örnek

sipariş ayrıntılarını görüntülemesi gerekiyor'Birim fiyat para birimi biçiminde alan. Bağlama sütununun sayı biçimini değiştirmek için bir olay işleyici ekleyin.

C#

 // Handles the BindingChildView event to set the UnitPrice column.

private void GridWeb1_BindingChildView(Aspose.Cells.GridWeb.GridWeb childGrid, Aspose.Cells.GridWeb.Data.WebWorksheet childSheet)

{

    DataView view = (DataView)childSheet.DataSource;

    if (view.Table.TableName == "Order Details")

    {

        childSheet.BindColumns["UnitPrice"].NumberType = NumberType.Currency3;

    }

}

VB.NET

 'Handles the BindingChildView event to set the UnitPrice column.

Private Sub GridWeb1_BindingChildView(ByVal childGrid As Aspose.Cells.GridWeb.GridWeb, ByVal childSheet As 

Aspose.Cells.GridWeb.Data.WebWorksheet) Handles GridWeb1.BindingChildView

    Dim view As DataView = CType(childSheet.DataSource, DataView)

    If view.Table.TableName = "Order Details" Then

        childSheet.BindColumns("UnitPrice").NumberType = NumberType.Currency3

    End If

End Sub

Veritabanından ve Bağlamadan Veri Yükleme

Açıklandığı gibiGridWeb’in Worksheets Designer’ını kullanarak Çalışma Sayfasını bir DataSet’e Bağlama, bir veritabanından DataSet’e veri yüklemek için Page_Load bloğuna kod eklemeniz ve DataSet’i sayfaya bağlamanız gerekir.

Sonraki adım.

Asppose.Grid.Web.Data.WebWorksheet Sınıfı bazı faydalı özelliklere sahiptir.

  • Örneğin, EnableCreateBindColumnHeader özelliği, sayfadaki ilişkili sütunun başlıklarını veya sayfadaki sütunu oluşturmak için kullanılır.

headers, ilişkili sütun adlarını görüntüler. Değerleri alırdoğru veyaYANLIŞ.

  • BindStartRow ve BindStartColumn özellikleri, kaynağın bağlı olması gereken GridWeb denetimi sayfasındaki konumu belirtir.
  • EnableExpandChildView özelliği, çalışma sayfası için genişletilmiş alt görünümü devre dışı bırakmak için kullanılır. Varsayılan olarak true olarak ayarlanmıştır.

Sınıfın da bazı yararlı yöntemleri var.

  • DataBind() yöntemi, bir sayfayı kaynağa bağlar.
  • CreateNewBindRow() yeni bir satır ekler ve onu veri kaynağına bağlar.
  • DeleteBindRow() ilişkili bir satırı siler.
  • SetRowExpand() yöntemi, genişletilmiş satırı ayarlar ve alt görünüm içeriğini veri bağlama modunda gösterir.
  • GetRowExpand() yöntemi, satırın genişletilip genişletilmediğini gösteren bir Boole değeri alır.

Aşağıdaki kodda, “dataSet21” DataSet nesnesi, üç tabloya dayalı verilerle doldurulur. Müşteriler tablosu, bunu yapmak için filtrelenir.

hiyerarşik görünümdeki ilk tablo. Önce sayfayı temizleyen ve ardından ayarlayan “sayfa” adlı bir WebWorksheet nesnesi oluşturulur.

veri kaynağına bağlıdır.

C#

 private void Page_Load(object sender, System.EventArgs e)

{

    // Put user code to initialize the page here

    if (!IsPostBack)

    {

        BindWithoutInSheetHeaders();

    }

}

private void BindWithoutInSheetHeaders()

{

    DemoDatabase2 db = new DemoDatabase2();

    string path = MapPath(".");

    path = path.Substring(0, path.LastIndexOf("\\"));

    path = path.Substring(0, path.LastIndexOf("\\"));

    db.oleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + "\\Database\\Northwind.mdb";

    try

    {

        // Connects to database and fetches data.

        // Customers Table.

        db.oleDbDataAdapter1.Fill(dataSet21);

        // Orders Table.

        db.oleDbDataAdapter2.Fill(dataSet21);

        // OrderDetailTable.

        db.oleDbDataAdapter3.Fill(dataSet21);

        // Filter data

        dataSet21.Customers.DefaultView.RowFilter = "CustomerID<'BSAAA'";

        WebWorksheet sheet = GridWeb1.WebWorksheets[0];

        // Clears the sheet.

        sheet.Cells.Clear();

        // Disables creating in-sheet headers.

        sheet.EnableCreateBindColumnHeader = false;

        // Data cells begin from row 0.

        sheet.BindStartRow = 0;

        // Bind the sheet to the dataset.

        sheet.DataBind();

    }

    finally

    {

        db.oleDbConnection1.Close();

    }

}

VB.NET

 Özel Alt Sayfa_Yük(System.Object Olarak ByVal gönderen, System.EventArgs Olarak ByVal e) MyBase.Load İşler

 'Sayfayı başlatmak için kullanıcı kodunu buraya girin

 Değilse PostBack O Zaman

 BindWithoutInSheetHeaders()

 Eğer Sonlandır

Aboneliği Sonlandır

Özel Alt BindWithoutInSheetHeaders()

 DemoDatabase2 = Yeni DemoDatabase2() olarak db'yi azaltın

Yolu karart As String = MapPath(".")

 yol = yol.Substring(0, yol.LastIndexOf("\"))

 yol = yol.Substring(0, yol.LastIndexOf("\"))

 db.OleDbConnection1.ConnectionString = "Sağlayıcı=Microsoft.Jet.OLEDB.4.0;Veri Kaynağı=" + yol + "\Database\Northwind.mdb"

 Deneyin

 Veritabanına bağlanır ve verileri getirir.

 ' Müşteriler Tablosu.

 db.OleDbDataAdapter1.Fill(DataSet21)

 ' Sipariş Tablosu.

 db.OleDbDataAdapter2.Fill(DataSet21)

 ' OrderDetailTable.

 db.OleDbDataAdapter3.Fill(DataSet21)

 Verileri filtrele

 DataSet21.Customers.DefaultView.RowFilter = "CustomerID<'BSAAA'"

        Dim sheet As WebWorksheet = GridWeb1.WebWorksheets(0)

        ' Clears the sheet.

        sheet.Cells.Clear()

        ' Disables creating in-sheet headers.

        sheet.EnableCreateBindColumnHeader = False

        ' Data cells begin from row 0.

        sheet.BindStartRow = 0

        ' Bind the sheet to the dataset.

        sheet.DataBind()

    Finally

        db.OleDbConnection1.Close()

    End Try

End Sub