Soran
gridview hücreleri renge göre sıralama

Soru
-
merhaba datayı bind ettikten sonra
gridin
htmlCellPrepared event ı ile bazı hücreleri durumlarına göre kırmızıya boyuyorum..
yapmak istediğim diyelim 100 kayıtda 50 tanesi kırmızı olduysa bütün kırmızı hücreler alt alta gelsin
ve şöyle bir şey varmı databind edildikten sonra ( bilgiler ekrandayken )
butona tıkladığımda callback le yada js ile
gridin içindeki şu renkleri sırala yada şu id ye sahip olanları en üste getir
bind edildikten sonra gride müdahele edebiliyormuyuz
teşekkürler
htmlCellPrepared kodlarım
if (e.DataColumn != null && e.CellValue != null && e.DataColumn.FieldName.Equals("PAZAR_DEGERI")) { double gridPazar = double.Parse(e.CellValue.ToString()); string blocked = e.GetValue("BAGIMSIZ_BOLUM_ID").ToString(); if (FindCellChangeColor(blocked, gridPazar) != true) { e.Cell.BackColor = System.Drawing.Color.Red; } }
Tüm Yanıtlar
-
-
merhaba mehmet cevap için teşekkür ederim
ancak söylediğini bende düşünsemde bunu yapamam çünkü
htmlCellPrepared event ı grid dolduktan sonra otomatik çalışıyor ve çalışması için grid de verilerin olması gerekiyorki renklendirmeyi ona göre yapsın bu yüzden dolmadan önce hücrelerin renki şu olsun diyemiyorum
renklendirmeyi sabit olarak vermiyorum
örneğin girilen fiyat db deki fiyattan düşükmü değilmi kontrol ediyorum ve düşükse kırmızı yapıyorum bu yüzden ızgara üstünde rastgele yerlerde renklenebiliyor
- Düzenleyen mustafa3434 30 Mayıs 2013 Perşembe 20:11
-
Tm bende ondan bahsediyorum.Dev express kullanıyorsun degilmi.Grid doldurduktan sonra bile
olusturuluyorsa ozaman index veya ID bakarak tekrardan renk degerlerni alıp Yeniden databind yapamazmısın?
double gridPazar = double.Parse(e.CellValue.ToString()); string blocked = e.GetValue("BAGIMSIZ_BOLUM_ID").ToString(); if (FindCellChangeColor(blocked, gridPazar) != true) { e.Cell.BackColor = System.Drawing.Color.Red; }
Bu renklere giride girmeden verebilcegini, düşünüyom.- Düzenleyen Mehmet_Bayraktar 30 Mayıs 2013 Perşembe 20:45 ek
-
işte sorun orda
benim db den çektiğim iki veri var ikisi farklı sp lerden geliyor
satır olarak yazım
ilk olarak grid de göstermek istediğim verileri db den çekiyorum ve grid içine bind ediyorum
dsTEM_ProjeBagimsizBolum.T_TEM_PROJE_BAGIMSIZ_BOLUMDataTable session_dtbagimsiz = (dsTEM_ProjeBagimsizBolum.T_TEM_PROJE_BAGIMSIZ_BOLUMDataTable)Session["TUM_BAGIMSIZ_BOLUMLERIN_LISTESI"]; dvgrvEkspertizList.DataSource = dtMasterGrid; dvgrvEkspertizList.DataBind(); bundan sonra bu session içindeki bagımsız id leri alıp foreach içinde dönerek bir list halinde bbIds.Add(drBagimsiz.BAGIMSIZ_BOLUM_ID); check(bbids); x bir fonksiyona gönderiyorum bu fonksiyonda guids.Remove(guids.Length - 1, 1); Object[] prms = new Object[] { guids.ToString() }; EGCommand cmd = new EGCommand("BagimsizBolumEkspertizIcerikleriGetirBy_BbIds", prms); object result = cmd.Execute(); if (result != null) { dtEksIcerik = (dsTEM_EkspertizIcerik.T_TEM_EKSPERTIZ_ICERIKDataTable)result; Session["ICERIK"] = (System.Data.DataTable)dtEksIcerik; } gelen id leri alıp db den bu id lerin detaylarını çekiyor ve gelen bilgileride fiyatı şundan yüksekse büyükse gibi reklendirmesini yapıyorum
sonuc olarak ben db ye bind ettiğim veri ilk veri.. ikinci cektiğim veri değil , ikinci gelen veri kendi ve grid üzerindeki bilgilere bakarak gridi renklendiriyor...
sizin soylediğiniz gibi renklendirme ıcın bir kolon oluşturmam ıcın onceden giride bind etmeden bu kontrolü yapmam lazım ve renklere göre o kolonu sort edicem
tamam ben bind etmeden önce bu iki veriyi karşılaştırıp x bir kolonada renk kodunu yazarım sonra sort ederım.. sonra bind edicem ve tekrar renklendir ıcın htmlcellprepared eventı calıscak..
dediğini bu şekilde olabilir diye dusunuyorum ama fazla işlem oluyor..
direk grid bind edildikten sonra sıralama yapmak istiyorum aslında
- Düzenleyen mustafa3434 31 Mayıs 2013 Cuma 14:23