BeforeSetCellContent 

Her bir hücre oluşturulurken bu olay tetiklenir. Hücreye değer ataması yapılmadan önce özelleştirme yapılabilir. Hücre renklendirme vb işlemler için kullanılabilir. Olay içinde aşağıdaki örnek kodlar kullanılabilir.

args.ColIdx : Olay tetiklendiğindeki kolon indeksi

args.RowIdx : Olay tetiklendiğindeki satır indeksi

args.Column.FieldName : Olay tetiklendiği andaki aktif kolonun alan adı

args.RowValues.Values : Olay tetiklendiği zamana kadar çizilmiş hücrelerin listesi

args.CellValue : Olay tetiklendiği andaki hücrenin değeri. Değer object tipinde gelir bir değerle karşılaştırma yapmak için convert etmek gerekir.

args.BackColor ve args.FontColor özelliklerine renk ataması yapılarak hücrenin renklendirilmesi sağlanabilir.

private void LDPGrid1_BeforeSetCellContent(LDP.Controls.Misc.LDPGridEventsCellHandlerArgs args)
{
    if (Convert.ToString(args.CellValue) == "Osman Erdoğan")
    {
       args.BackColor = System.Drawing.Color.Red;
       args.FontColor = System.Drawing.Color.White;
    }
}



AfterRowInitialized

Grid'in her satırı çizilirken aşağıdaki AfterRowInitialized olayına düşer. 

args.Row.Values[0] : Grid'in çizilen satırının ilk kolonun değerini almayı sağlar.

private void LDPGrid1_AfterRowInitialized(LDP.Controls.Misc.LDPGridEventsRowHandlerArgs args)
{
   if (Convert.ToString(args.Row.Values[0]) == "Aylin Erdil")
   {
     args.BackColor = System.Drawing.Color.Red; // Grid'in çizilen satırının arka plan renginin değiştirilmesi
     args.FontColor = System.Drawing.Color.White; // Grid'in çizilen satırının metin renginin değiştirilmesi
   }
}

AfterRowTemplateOpen

Grid verileri üzerinde kaydetme/ düzenleme işlemleri için açılan diyalog açılmadan önce tetiklenen olay.

Grid'in Mode özelliği CustomRowTemplate olduğunda; custom editing için eklenen bileşenlerin değerlerine bu olay içinden erişilebilir.

private void LDPGrid1_AfterRowTemplateOpen(LDP.Controls.UIContracts.Base.ILDPControl sender)
{
   // row template'in hangi aksiyon için açıldığı ((LDP.Controls.Misc.LDPGrid)sender).DataAccess.LastCommand ile alınır.
}



RowDbClicked

Grid'in bir satırına çift tıklandığında RowDbClicked olayına düşer. Olay içinde aşağıdaki örnek kodlar kullanılabilir.

LDPGrid1.DataAccess.ActiveRow["Name"] : Seçilen satırın "Name" isimli kolonun değerini almayı sağlar. 

LDPGrid1.DataAccess.ActiveRow.Values[0] : Seçilen satırın ilk kolonunun değerini almayı sağlar. 

((LDP.Controls.Misc.LDPGrid)sender).DataAccess.ActiveRow.Values[0] : Seçilen satırın ilk kolonunun değerini almayı sağlar. 

((LDP.Controls.Misc.LDPGrid)sender).DataAccess.ActiveRow["Name"] : Seçilen satırın "Name" isimli kolonun değerini almayı sağlar. 


Örnek kod parçasında; çift tıklanan satırın "Name" isimli kolonundaki değer  "Gamze Yılmaz" ise "Gamze Yılmaz adlı öğrenci bulundu" mesajı gösteriliyor. Aksi durumda "Öğrenci Gamze Yılmaz değildir" mesajı gösteriliyor.

private void LDPGrid1_RowDblClicked(LDP.Controls.UIContracts.Base.ILDPControl sender)
{
   if (Convert.ToString(LDPGrid1.DataAccess.ActiveRow["Name"]) == "Gamze Yılmaz")
   {
       LDPMessage.Success("Gamze Yılmaz adlı öğrenci bulundu");
   }
   else
   {
       LDPMessage.Success("Öğrenci Gamze Yılmaz değildir");
   }
}



RowSelected

Grid RowSelection özelliğinin Enabled = true olduğunda kullanılabilecek bir olaydır.

Gridde bir satır için işaret kutusu seçildiğinde RowSelected olayı tetiklenir. Aşağıdaki kod ile aktif satırın(işaret kutucuğunda seçim yapılan) seçili olma durumu kontrol edilebilir.

private void LDPGrid1_RowSelected(LDP.Controls.UIContracts.Base.ILDPControl sender)
{
    if (LDPGrid1.DataAccess.ActiveRow.IsSelected())
      LDPMessage.Success("Kayıt Seçili");
}

Grid'de yapılan seçimler tamamlandıktan sonra herhangi bir olayın arkasında seçili satırların anahtar değerleri aşağıdaki şekilde alınabilir.

LDPGrid1.RowSelection.SelectedPKValues().Count : Seçili kayıt sayısı

LDPGrid1.RowSelection.SelectedPKValues() : Seçili satırların Id alanlarının listesi 

LDPGrid1.RowSelection.SelectedPKValues()[0] : Seçili satırların ilkinin Id değeri


DBButtonBeforeClick

Grid toolbar üzerindeki veri işlemleri butonlarına( Yenile - Ekle - Düzenle - Sil ) tıklandığında tetiklenecek olay.

private void LDPGrid1_DBButtonBeforeClick(LDP.Controls.Misc.LDPToolbar sender, string key, LDP.Controls.Misc.LDPToolbar.ToolbarButtonEventArgs args)
{
   // key : hangi veri butonuna tıklandığını belirtir.
}

Key değerlerinin karşılığı aşağıdaki şekildedir :

 "rfr" --> refresh (Yenile)

"add" --> add (Ekle)

"upd" --> update (Düzenle)

"del" --> delete (Sil)



NvgButtonBeforeClick

Grid toolbar üzerindeki navigasyon butonlarına( İlk - Son- Önceki - Sonraki) tıklandığında tetiklenecek olay.

private void LDPGrid1_NvgButtonBeforeClick(LDP.Controls.Misc.LDPToolbar sender, string key, LDP.Controls.Misc.LDPToolbar.ToolbarButtonEventArgs args)
{
   args.Cancel = true; // navigasyon işleminin iptal edilmesini sağlar.
   // key : hangi navigasyon butonuna tıklandığını belirtir.
}

Key değerlerinin karşılığı aşağıdaki şekildedir :

"fst" --> first  (İlk)

"prv" --> previous (Önceki)

"nxt" --> next (Sonraki)

"lst" --> last (Son)



LinkForCell

Grid'e LinkColumn tipli kolon eklenmiş ise; linkte gösterilecek metin ve yönlendirilecek adres satır bazında aşağıdaki şekilde düzenlenebilir. Her bir grid satırı için LinkButton tipindeki kolonları için bu olay tetiklenir.

NOT : LinkColumn özelliklerinden FieldName özelliği seçili olması durumunda; link.Text verilmeden çalıştırılabilir. Bu durumda her kolonda ilgili alan değeri link olarak gösterilir.

Aşağıdaki kod'da tüm satırlar için link kolonuna "Google" yazar.

args.RowValues.Values[0] :  Olay tetiklendiği andaki satırın ilk kolonunun değeri alınabilir. 

private void LDPGrid1_LinkForCell(LDP.Controls.HTML.Link link, LDP.Controls.Misc.LDPGridEventsCellHandlerArgs args)
{
   link.Text = "Google";
   link.HRef = "http://google.com.tr?username=" + Convert.ToString(args.RowValues.GetValue("Name"));
}

CellLinkClicked

Grid'e LinkColumn tipli kolon eklenmiş ise; oluşturulan linklerden birine tıklandığında belirtilen sayfaya yönlendirme yapmadan önce tetiklenecek olaydır.

private void LDPGrid1_CellLinkClicked(LDP.Controls.Misc.LDPGrid sender, LDP.Controls.Misc.LDPGridColumn column)
{
   LDPTextEdit1.Text = "Linke tıklandı....";
}



ButtonForCell

Grid'e ButtonColumn tipli kolon eklenmişse; butonda yazacak metin aşağıdaki şekilde dinamik olarak ilgili satırın istenilen kolonun değeri olarak atanabilir.

args.Column.Caption : Olay tetiklendiği andaki aktif buton hücresinin bulunduğu kolonun başlık bilgisi . Birden fazla buton kolon olduğunda kolonları ayırt etmek için kullanılabilir.

private void LDPGrid1_ButtonForCell(LDP.Controls.HTML.Button createdButton, LDP.Controls.Misc.LDPGridEventsCellHandlerArgs args)
{ 
   //her bir satır için ilk kolonun(0.index) değerinin buton texti olarak yazılmasını sağlar.
   createdButton.Text = "Tıkla : " + Convert.ToString(args.RowValues.GetValue("Name"));

   // buton stillendirme işlemleri de aşağıdaki kodlar kullanılarak gerçekleştirilebilir.
   createdButton.Style.Add("background-color", "lightblue");
   createdButton.Style.Add("color", "white");
}

CellButtonClicked

Grid'e ButtonColumn tipli kolon kullanılıyor ise; Grid hücresindeki butona tıklandığında CellButtonClicked olayı tetiklenir. Grid'in birden fazla kolonu ButtonColumn tipli olarak tanımlanabilir.  Herhangi bir kolondaki butona tıklandığında bu olay tetiklenir. Hangi kolonunun butonuna tıklandığına  column özelliğinden ayırt edilebilir.

private void LDPGrid1_CellButtonClicked(LDP.Controls.Misc.LDPGrid sender, LDP.Controls.Misc.LDPGridColumn column)
{
    if (column.Caption == "Buton")  // alternatif olarak column.ID de kullanılabilir.
     LDPMessage.Info("Butona Tıklandı..." + sender.DataAccess.ActiveRow["Name"].ToString());         
}