none
GRIDVIEW DE LISTELENEN KAYITLARA GÖRE KOŞUL BELİRTME RRS feed

  • Soru

  • Merhabalar,

    Yapmak istediğim;

    Bir sipariş sepetinde gridview içinde bulunan siparişlerden stok sayısı = 0 olan var ise sipariş ver butonunu pasif yap.

    Bunun için şöyle bir kod buldum ama bu son sütundaki değere göre sonuç veriyor. Ben sütunlardan bir tanesi bile 0 ise butonu pasif yapmasını istiyorum.

    foreach(GridViewRowrow inthis.grd_siparissepeti.Rows)

    {

    if(row.Cells[6].Text == 0 )

    {
    row.RowState =

    DataControlRowState.Selected;

    Button1.Enabled = false;

    }
    }

    12 Aralık 2013 Perşembe 10:12

Yanıtlar

  • Button1.Enabled = grd_siparissepeti.Rows.Cast<GridViewRow>().Where(p=>p.Cells[6].Text == "0").Count() == 0;
    şeklinde denermisiniz. Aslında bunu gridin datasource'undan yaparsanız daha güzel olur.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    12 Aralık 2013 Perşembe 10:57
    Moderatör

Tüm Yanıtlar

  • Button1.Enabled = grd_siparissepeti.Rows.Cast<GridViewRow>().Where(p=>p.Cells[6].Text == "0").Count() == 0;
    şeklinde denermisiniz. Aslında bunu gridin datasource'undan yaparsanız daha güzel olur.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    12 Aralık 2013 Perşembe 10:57
    Moderatör
  • Teşekkürler,

    Denedim aşağıda ki hatayı veriyor.

    'system.web.ui.webcontrols.gridviewrowcollection ' does not contain a definition for 'Cast' and the best extension method overload ....

    12 Aralık 2013 Perşembe 11:33
  • en üste;

    using System.Linq;

    eklermisiniz.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    12 Aralık 2013 Perşembe 11:36
    Moderatör
  • Ekledim,

    Çalışmadı :( Örneği şöyle değiştirsek, stok kısmında "yok" yazanlar.

    Button1.Enabled = grd_siparissepeti.Rows.Cast<GridViewRow>().Where(p=>p.Cells[6].Text == "yok").Count() == 0;

    Birde bu kodu belki yanlış bir yerde kullanıyorum.

    protected voidButton2_Click(objectsender, EventArgse)

        {
           Button1.Enabled = grd_siparissepeti.Rows.Cast<

    GridViewRow>().Where(p => p.Cells[6].Text == "yok").Count()==0;

        }

    12 Aralık 2013 Perşembe 11:57
  • grid'in DataBound eventinde deneyin. Kodu görmediğimiz için öneri yapabiliriz, verdiğimiz örneğin direk çalışması düşük ihtimal.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    12 Aralık 2013 Perşembe 12:09
    Moderatör
  • Teşekkürler, çalıştı,

    FAKAT

    10 tane kayıt var sonuncu kayıt değeri ne ise ona göre işlemi yapıyor.

    1. 5
    2. 4
    3. 0
    4. 6
    5. 1

    3. kayıt değerinin 0 olmasından dolayı buton enabled=false olmalı fakat 5. kayıt değeri 1 olduğu için buton true oluyor. Ben bir tane satır bile 0 olsa false olsun istiyorum.

    12 Aralık 2013 Perşembe 12:40
  • yapmaz, atladığınız bişey var. 7. cellde "yok" stringini görüyorsa false yapar.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    12 Aralık 2013 Perşembe 13:16
    Moderatör
  • ID Ürün Adı     Miktar     Stok
     1  Televizyon     10        Var
     2  Kalem             5        Yok
     3  Silgi                2        Var

    protected voidButton2_Click(objectsender, EventArgse)

        {
           Button1.Enabled = grd_siparissepeti.Rows.Cast<

    GridViewRow>().Where(p => p.Cells[6].Text == "Yok").Count()==0;

        }

    Veri tabanında ki verileri gridvewe e çekiyorum. Sonra sayfaya koyduğum bir buton a bastığım zaman yukarıda ki komut çalışıyor.

    fakat 3. kayıta ait stok bilgisi var olduğu için buton true oluyor, 3.kayıt yok olunca false oluyor.

    burada koşul sadece 3. kayıta göre tru yada false oluyor. 

    12 Aralık 2013 Perşembe 13:54
  • Dediğim gibi datasourcedan yapsanız daha iyi olur

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    12 Aralık 2013 Perşembe 14:52
    Moderatör
  • Butonun enable ozelliği bir kere false oldugunda, onu bir daha true yapan herhangi bir kod olmadıgı surece (yada sayfa yenilenmediği sürece) enable özelliği true olamaz. Aslında senin ilk verdiğin kod yada Önay hocamın verdiği kod sorunsuz olarak calısıyor olması gerekli. 

    Hata, muhtemelen sayfanın bir sekilde yenilenmesi sonucu olusuyor. Yada farklı bir yerde butonun enable ozelliğini tekrar true olarak degistiriyorsun.

    Kodlarının tamamını yazabilir misin?


    i can change the world, just need the source code..

    12 Aralık 2013 Perşembe 15:26
  • Teşekkürler sonunda oldu. Dediğiniz gibi datasource içinde yaptım.

    İyi günler.

    12 Aralık 2013 Perşembe 15:54