C# DevExpress GirdView Hücre Reklendirme dersimiz ile tekrar karşınızdayım. Sitemdeki birkaç sorun ve askerlik görevi sebebi uzun bir süredir sitemde ders yayını yapamıyordum. Bugün sonunda sorunu çözdüm ve ders yayınlarıma tekrar başlıyorum. Bu dersim ile birlikte sitemde toplam 300 adet yazı oluyor.
Kısa süre önce bir projemde gerekli olan DevExpress GirdView Hücre Reklendirme işlemini ders olarak eklemek istedim. Bu konu hakkında daha önce bir ders eklememiştim. DevExpress GirdView üzerinde satır renklendirme işlemini eklemiştim. Buradaki linkten ilgili derse ulaşabilirsiniz. Ayrıca yine DevExpress GridView grup başlık renklendirme dersi de eklemiştim. Bu derse de buradaki linkten ulaşabilirsiniz.
Şimdi DevExpress GridView hücre renklendirme işlemine bir bakalım.
C# DevExpress GirdView Hücre Reklendirme
Bazı durumlarda GridView üzerinde belirli hücreleri renklendirmek isteye biliriz. Örneğin bir bakiye hesap tablosundaki borçları kırmızı, alacakları yeşil renk ile belli etmek kullanıcının listeyi daha hızlı algılamasına yardımcı olacaktır. Veya başka bir bakiye tablosunda eksi değerleri kırmızı olarak gösterebiliriz ki bu sayede ilgili carinin hesabında bakiyesi kaldığını görebiliriz. Bunun gibi daha bir çok durumda hücre renklendirme tabloların daha hızlı algılanmasını sağlayabiliriz.
Bu işlem için GridView’in RowCellStyle eventini kullanmaktayız.
Şimdi örnek bir kod verelim ve kodları inceleyelim.
int value = 0; void gridView1_RowCellStyle(object sender, RowCellStyleEventArgs e) { GridView currentView = sender as GridView; if (e.Column.FieldName == "Bakiye") { value = 0; value = Convert.ToInt32(currentView.GetRowCellValue(e.RowHandle, "Bakiye")); if (value < 0) e.Appearance.BackColor = Color.Red; } }
Yukarıdaki kod bloğunu incelediğimizde;
- İlk olarak bir gridview tanımlaması yapıyoruz. Burada hangi gridiew üzerinde işlem yapılacağını belirtmiş oluyoruz.
- Form açıldığı anda yada girdview’in datasource’su değiştiği anda bu event tetiklenecektir ve tüm kolonlar taranacaktır.
- Eğer bir kolonun adı “Bakiye” ise if şartı sağlanacağından if bloğuna girecektir.
- İf bloğuna girdiğinde yine “Bakiye” kolonundaki değerleri tarayacak ve bir değişkene atamasını yapacak.
- Eğer alınan değer – değerde ise yani 0 ‘dan küçük ise ilgili hücrenin arka plan rengi kırmızı olarak değiştirilecektir.
Burada şu bilgiyi verelim.
Bu gibi renklendirme işlemlerinde; ilk olarak ilk kolonun ilk hücresine bakılır. Sonrasında ikinci kolonun ilk hücresine bakılır. Sonrasında üçüncü kolonun ilk hücresine… Tarama bu şekilde ilerlediğinden dolayı çok büyük tablolarda formun açılmasını ya da GridView’in datasoruce’nun yenilenmesi durumunda kasma yapacaktır. Bu sebeple listeleriniz çok büyük ise tarih filtresi ile kullanarak tablolarınızı mümkün mertebe küçük tutmaya çalışın.
BİLGİLENDİRME NOTU: Döngülerde ve döngü mantığında çalışan işlemlerde değişken tanımlaması yapmayın. Yukarıdaki örnekte gördüğünüz gibi Value int değişkeninin tanımlanmasını eventin dışında yaptım. Eğer böyle yapmasaydım, GridView ‘dei hücre sayısında value int değişkeni tanımlanacaktı. Bu da RAM’de fazladan bir sürü yer açılması anlamına gelir. Sadece bir kere olması fark ettirmese de projeniz genelinde sürekli olarak bu şekilde işlemler yapmanız RAM’i sürekli boş alanlarla dolduracak ve program ne kadar çok kullanılırsa o kadar hızlı RAM dolacaktır. RAM dolunca da ne olacağını söylememe gerek yok sanırımç ;)
NOT: Bu dersimiz Github projeme eklemek isterdim ancak DevExpress DLL’leri gerekli olduğundan ve DevExpress lisanslı bir program olduğundan dolayı ekleyemiyorum.
C# DevExpress GirdView Hücre Reklendirme dersimizde bu kadardı arkadaşlar. Diğer derslerimizde görüşmek üzere…
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.
Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…
Takipte ve Sağlıcakla kalın.