none
gridview hücreleri renge göre sıralama RRS feed

  • 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;
                    }
     
                }
         
    30 Mayıs 2013 Perşembe 13:28

Tüm Yanıtlar

  • Merhaba  Emin;

    Soyle anlatiyim yapman gereken sey gride doldurmadan once bir foreach ile icinde donup hepisne bir renk alanı ekletmen ve sonra o renk alanına gore orderby ettirip siralaman yeterli olur.

    30 Mayıs 2013 Perşembe 17:07
  • 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
    30 Mayıs 2013 Perşembe 20:09
  • 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.
    30 Mayıs 2013 Perşembe 20:41
  • 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


    31 Mayıs 2013 Cuma 14:19