Çalışma Sayfasını GridWeb Kullanarak Özelleştirilmiş Bir Koleksiyon Nesnesine Bağlama

Çalışma Sayfasını Özel Koleksiyonla Bağlama

Bu özelliği göstermek için, bu makale örnek bir uygulamanın nasıl oluşturulacağını adım adım açıklamaktadır. Önce özel bir koleksiyon oluşturun ve ardından bu koleksiyonu bir çalışma sayfasıyla ciltlemek için kullanın.

1. Adım: Özel Kayıt Oluşturma

Özel bir koleksiyon oluşturmadan önce, koleksiyonda depolanacak özel kayıtları tutmak için bir sınıf oluşturun. Bu makalenin amacı, kendi özel koleksiyonlarınızı nasıl oluşturacağınız ve bunları Aspose.Cells.GridWeb ile nasıl bağlayacağınız konusunda bir fikir vermektir, böylece özel kaydı nasıl oluşturacağınız size kalmıştır.

Aşağıdaki örnek, özel alanlara erişimi kontrol eden beş özel alan ve beş genel özellik içeren MyCustomRecord sınıfını kullanır. İşte özelliklerin yapısı:

  • Okumak ve yazmak için StringField1 özelliğistringfield1 (sicim).
  • Yalnızca okunacak ReadonlyField2 özelliğistringfield2 (sicim).
  • Okumak ve yazmak için DateField1 özelliğitarih alanı1 (TarihSaat).
  • Okumak ve yazmak için IntField1 özelliğiintfield1 (tamsayı).
  • Okumak ve yazmak için DoubleField1 özelliğiçift alan1 (çift).

C#

 //Creating a class that will act as record for the custom collection

public class MyCustomRecord

{

    //Private data members

    private string stringfield1;

    private string stringfield2 = "ABC";

    private DateTime datefield1;

    private int intfield1;

    private double doublefield1;

    //Creating a string property

    public string StringField1

    {

        get { return stringfield1; }

        set { stringfield1 = value; }

    }

    //Creating a readonly string property

    public string ReadonlyField2

    {

        get { return stringfield2; }

    }

    //Creating a DateTime property

    public DateTime DateField1

    {

        get { return datefield1; }

        set { datefield1 = value; }

    }

    //Creating an int property

    public int IntField1

    {

        get { return intfield1; }

        set { intfield1 = value; }

    }

    //Creating a double property

    public double DoubleField1

    {

        get { return doublefield1; }

        set { doublefield1 = value; }

    }

}

2. Adım: Özel Koleksiyon Oluşturma

Şimdi, müşteri kayıtları eklemek ve bunlara erişmek için özel bir koleksiyon oluşturun. Basitleştirmek için bu örnek, salt okunur bir dizin oluşturucu içeren MyCollection sınıfını kullanır. Bu indeksleyiciyi kullanarak koleksiyonda saklanan herhangi bir özel kaydı alabiliriz.

C#

 //Creating a custom collection

public class MyCollection : CollectionBase

{

    //Leaving the collection constructor empty

    public MyCollection()

    {

    }

    //Creating a readonly property for custom collection. This Item property is used by GridWeb control to

    //determine the collection's type

    public MyCustomRecord this[int index]

    {

        get { return (MyCustomRecord)this.List[index]; }

    }

}

3. Adım: Bir Çalışma Sayfasını Özel Koleksiyonla Bağlama

Özel koleksiyon oluşturma işlemi tamamlandı. Şimdi Aspose.Cells.GridWeb içindeki bir çalışma sayfasına bağlamak için özel koleksiyonu kullanın. Önce bir web formu oluşturun, buna GridWeb kontrolünü ekleyin ve bazı kodlar ekleyin.

Özel koleksiyonu bağlama amacıyla kullanmak için önce MyCollection sınıfından bir nesne oluşturun (yukarıdaki adımda oluşturuldu). Ardından MyCustomRecord nesneleri oluşturun ve MyCollection nesnesine ekleyin.

Son olarak, MyCollection nesnesini çalışma sayfasının veri kaynağı olarak ayarlayın ve çalışma sayfasını koleksiyonla bağlayın. Bu noktada, çalışma sayfasının ilişkili sütunları için doğrulama kuralları da oluşturabilirsiniz.

C#

 //Implementing Page_Load event handler

protected void Page_Load(object sender, EventArgs e)

{

    if (Page.IsPostBack == false && this.GridWeb1.IsPostBack == false)

    {

        //Creating an object of custom collection

        MyCollection list = new MyCollection();

        //Creating an instance of Random class

        System.Random rand = new System.Random();

        //Creating a loop that will run 5 times

        for (int i = 0; i < 5; i++)

        {

            //Creating an object of Custom Record

            MyCustomRecord rec = new MyCustomRecord();

            //Initializing all properties of Custom Record

            rec.DateField1 = DateTime.Now;

            rec.DoubleField1 = rand.NextDouble() * 10;

            rec.IntField1 = rand.Next(20);

            rec.StringField1 = "ABC_" + i;

            //Adding Custom Record to Collection

            ((IList)list).Add(rec);

        }

        //Accessing a desired worksheet

        GridWorksheet sheet = GridWeb1.WorkSheets[0];

        //Setting the Data Source of worksheet

        sheet.DataSource = list;

        //Creating columns automatically

        sheet.CreateAutoGenratedColumns();

        //Setting the validation type of value to DateTime

        sheet.BindColumns[2].Validation.ValidationType = ValidationType.DateTime;

        //Binding worksheet

        sheet.DataBind();

        //Assigning an event handler to InitializeNewBindRow event of the worksheet

        //sheet.InitializeNewBindRow += new InitializeNewBindRowHandler(GridWeb1_InitializeNewBindRow);

    }

}

Adım 4: Çalışma Sayfasının InitializeNewBindRow Olayını İşleme

Yukarıdaki kodda, GridWeb1_InitializeNewBindRow olay işleyicisini çalışma sayfasının InitializeNewBindRow öğesine atamak için kullanılan fazladan bir kod satırı fark etmiş olabilirsiniz. Bu olay, çalışma sayfasına yeni bir ilişkili satır eklendiğinde tetiklenir. MyCustomRecord nesnesinin DateField1 özelliği nedeniyle bu olay için bir olay işleyicisi oluşturduk.

Aspose.Cells.GridWeb otomatik olarak başlatılırint veçift ile değerler**sıfır (0)**GridWeb denetimine yeni bir bağlı satır eklendiğinde. Tarihler için, GridWeb kontrolünün sistemden güncel tarihi otomatik olarak eklemesini istiyoruz. Bunu yapmak için, InitializeNewBindRow olayı için GridWeb1_InitializeNewBindRow olay işleyicisini oluşturduk.

BindObject bağımsız değişkenini kullanarak GridWeb’den MyCustomRecord sınıfının belirli bir örneğine erişin ve ardından geçerli sistem tarihini DateField1 özelliğine atayın.

C#

 //Creating GridWeb1_InitializeNewBindRow event handler

private void GridWeb1_InitializeNewBindRow(GridWorksheet sender, object bindObject)

{

    //Accessing that custom record object that is newly bound

    MyCustomRecord rec = (MyCustomRecord)bindObject;

    //Initializing the DateTime of a property when a new row gets bound to the database

    rec.DateField1 = DateTime.Now;

}

Adım 5: Uygulamayı Çalıştırma

ya basarak uygulamayı çalıştırınCtrl+F5 veyaBaşlama VS.NET’deki düğme. Web formu yeni bir tarayıcı penceresinde açılır.

Özel bir koleksiyonla ciltlenmiş çalışma sayfası

yapılacaklar:resim_alternatif_metin

Kayıt eklemek veya silmek için GridWeb denetimine sağ tıklayın. Örneğin, seçerek çalışma sayfasına yeni bir kayıt ekleyin.Satır ekle seçenek.

Menüden Satır Ekle seçeneğinin seçilmesi

yapılacaklar:resim_alternatif_metin

Çalışma sayfasına yeni bir satır eklendiğinde, hücreler geçerli sistem tarihini içeren varsayılan verileri içerir.

Varsayılan verilerle çalışma sayfasına yeni satır eklendi

yapılacaklar:resim_alternatif_metin

Verilerde değişiklik yaptıktan sonra tıklayın.Kayıt etmek veyaGöndermek değişikliklerinizi kaydetmek için

Kaydet düğmesine tıklayarak değişiklikleri kaydetme

yapılacaklar:resim_alternatif_metin

Çözüm