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()); }