none
c# Devexpress gridview multiselect checkbox RRS feed

  • Soru

  • Arkadaşlar yukarıdaki gibi bir formum var ve gridview üzerinde sağ tıkladığımda checkbox ı seçili olan satırda silme vb. işlemler nasıl yapabilirim.Yardımcı olabilirseniz çok sevinirim.ben bulamadım internette.Teşekkürler.

    10 Mayıs 2016 Salı 05:50

Yanıtlar

  • Neden bu kadar kastınız ufak bir araştırma ile yapabilirdiniz.

    private void SecilenleriSil()
    {
       var secilenler = gridView1.GetSelectedRows();
       List<int> secilenIdler = new List<int>();
       foreach(int handle in secilenler)
          secilenIdler.Add(Convert.ToInt32(gridView1.GetRowCellValue(handle,colId)));
       
       foreach(int id in secilenIdler)
          //Veritabanından silme işlemi..
    }

    Ama bunun yerine bir datasource ile çalışsanız çok daha basit olurdu.. BindingSource üzerinden yapsanız şöyle bişey yeterli olacaktı.

    private void VerileriYukle()
    {
       //Formunuza bir bindingSource ekleyip gridControl.DataSource özelliğine bu bindingSource nesnesini verin.
       var data = Db.Table.ToList();
       bindingSource1.DataSource = data;
    }
    
    private void SecilenleriSil()
    {
       gridView1.DeleteSelectedRows();
       DB.SaveChanges();
    }


    oguzkurtcuoglu.com



    10 Mayıs 2016 Salı 08:47

Tüm Yanıtlar

  • Sil buton Click kısmına bu şekilde yapa bilirsin.

    if (giridViewListe.RowCount <= 0)
         return; 

     string BelgeID = giridViewListe.GetFocusedRowCellValue("ID").ToString();

          var KayitSil = Db.Bayi_Liste.Where(p => p.ID.ToString() == BelgeID ).First();
          Db.Bayi_EDevletData.Remove(KayitSil);
          Db.SaveChanges();

    10 Mayıs 2016 Salı 06:04
  • Hocam olmadı dediğinizi yaptım.

    sil butonun clicki şöyle

               

     private void btndilcont_Click(object sender, EventArgs e)
            {
                if (Edit && KayitID > 0 && Mesajlar.Sil() == DialogResult.Yes) Sil();

                  Listele();
            }

    sil metodu işe böyle

     void Sil()
            {

                try
                {
                    DB.EvrakKayits.DeleteOnSubmit(DB.EvrakKayits.First(s => s.EvrakId == KayitID));
                    DB.SubmitChanges();
                   

                }
                catch (Exception e)
                {

                    Mesajlar.Hata(e);
                }


    10 Mayıs 2016 Salı 06:19
  • Grid üzerindeki seçili olan kayıtı silmek için yazdığım kodlar ve KayitID   nereden aldırıyorsun.

    almış olduğun hata nedir.

    10 Mayıs 2016 Salı 07:02
  • hata yok ben gridview üzerindeki bir checkbox ı işaretledikten sonra contextmenu den silme vb işlemler yapmak istiyorum ama internette çok araştırdım bulamadım. ben LINQ to SQL kullanıyorum.

    KOD BÖLÜMÜ

    namespace Hatırlatıcı
    {
        public partial class EvrakTakip : DevExpress.XtraBars.Ribbon.RibbonForm
        {
            EvrakTakipDataContext DB = new EvrakTakipDataContext();
            Fonksiyonlar.Formlar Formlar = new Fonksiyonlar.Formlar();
            Fonksiyonlar.Mesajlar Mesajlar = new Fonksiyonlar.Mesajlar();
            public static int Aktarma = -1;
            int KayitID = -1;
            
            public bool Secim = false;
          
            bool Edit = false;
            public EvrakTakip()
            {
                InitializeComponent();
            }

            private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e)
            {
                Yeni_Evrak yeni = new Yeni_Evrak();
                
                DialogResult sonuc = yeni.ShowDialog();
                if (sonuc == System.Windows.Forms.DialogResult.OK)
                {
                    Listele();
                }
            }

            private void barButtonItem3_ItemClick(object sender, ItemClickEventArgs e)
            {
                DialogResult x = MessageBox.Show("Çıkmak İstediğinizden Eminmisiniz?", "Çıkış Mesajı", MessageBoxButtons.YesNo);
                if (x == DialogResult.No)
                {
                   
                }
                else
                {
                    Application.Exit();

                }
            }

            private void barButtonItem10_ItemClick(object sender, ItemClickEventArgs e)
            {
                Formlar.Gruplar();
            }
            void Listele()
            {

                var list = from s in DB.EvrakKayits
                           select s;
                gridControlEvrak.DataSource = list;
            }

            private void EvrakTakip_Load(object sender, EventArgs e)
            {
                Listele();
            }
            void Sil()
            {

                try
                {
                    DB.EvrakKayits.DeleteOnSubmit(DB.EvrakKayits.First(s => s.EvrakId == KayitID));
                    DB.SubmitChanges();
                   

                }
                catch (Exception e)
                {

                    Mesajlar.Hata(e);
                }
            }

    10 Mayıs 2016 Salı 07:20
  • Grid üzerinde Seçilen tüm kayıtları silmek için

    Sil botunu Click içerisine 

    for (int i = 0; i < gvListe.RowCount; i++)
    {
          if (gvListe.GetRowCellValue(i, "Sec").ToString() == "True")
         {
            var belgeNo = gvBekleyenFaturalar.GetRowCellValue(i, "ID").ToString();
              IDList.Add(belgeNo)

    // Silme işlemleri tek tek yapa bilirsin. yada seçi olan ID leri Listeye atıp for'dan çıktıktan sonra sile bilirsin.

           }

      }

    if(IDList.Count >0)
    {
       Silme işlemleri 
     }

    • Düzenleyen A_BLR 10 Mayıs 2016 Salı 07:30
    10 Mayıs 2016 Salı 07:26
  • Gene olmadı hocam.anlamadım nerde hata var ben dediğinizi yaptım.Şu gridview deki checkbox un seçili olup olmadığını veya seçili ise bunu yap değilse yapma türünden nasıl yaparız.

    10 Mayıs 2016 Salı 08:12
  • Örnek:

    Grid içerisine eklemiş olduğun Checkbox ismi FieldName = Sec

    for (int i = 0; i < gvListe.RowCount; i++)  
    {
          if (gvListe.GetRowCellValue(i, "Sec").ToString() == "True")
         {
            

          }

      }

    bu şekilde çalışması lazım yapamazsan bir mail adresi yada ID verirsen bağlanıp bakıyım.

    10 Mayıs 2016 Salı 08:38
  • Neden bu kadar kastınız ufak bir araştırma ile yapabilirdiniz.

    private void SecilenleriSil()
    {
       var secilenler = gridView1.GetSelectedRows();
       List<int> secilenIdler = new List<int>();
       foreach(int handle in secilenler)
          secilenIdler.Add(Convert.ToInt32(gridView1.GetRowCellValue(handle,colId)));
       
       foreach(int id in secilenIdler)
          //Veritabanından silme işlemi..
    }

    Ama bunun yerine bir datasource ile çalışsanız çok daha basit olurdu.. BindingSource üzerinden yapsanız şöyle bişey yeterli olacaktı.

    private void VerileriYukle()
    {
       //Formunuza bir bindingSource ekleyip gridControl.DataSource özelliğine bu bindingSource nesnesini verin.
       var data = Db.Table.ToList();
       bindingSource1.DataSource = data;
    }
    
    private void SecilenleriSil()
    {
       gridView1.DeleteSelectedRows();
       DB.SaveChanges();
    }


    oguzkurtcuoglu.com



    10 Mayıs 2016 Salı 08:47
  • Ne yapalım hocam bilgimiz sizin kadar değil sürekli interneten bakıyoruz ama işte istediğimiz tarzda bulamıyoruz.Sizin videolardan da faydalanıyoruz takip ediyoruz da.Çok Teşekkürler hocam
    10 Mayıs 2016 Salı 10:21
  • Örnek:

    Grid içerisine eklemiş olduğun Checkbox ismi FieldName = Sec

    for (int i = 0; i < gvListe.RowCount; i++)  
    {
          if (gvListe.GetRowCellValue(i, "Sec").ToString() == "True")
         {
            

          }

      }

    bu şekilde çalışması lazım yapamazsan bir mail adresi yada ID verirsen bağlanıp bakıyım.

    Hocam size de teşekkürler ilgilendiğiniz için.
    10 Mayıs 2016 Salı 12:45
  • sanane kardeşim adam öyle istemiş
    18 Mayıs 2016 Çarşamba 16:49
  • her şeye limon olmasana sen dangalak. Hadi bakalım senin tarzınla gidelim bundan sonra 
    • Düzenleyen hakan1992 18 Mayıs 2016 Çarşamba 16:51
    18 Mayıs 2016 Çarşamba 16:50
  • Hocam Aynı işlemi yapıyorum fakat veriler gridViewden silinirken database'den silinmiyor, dolayısıyla VerileriYukle();

    çağırıldığında databasedeki veriler tekrar geliyor.

    5 Kasım 2019 Salı 12:09
  • Zaten DB'den silme kodu verilmemiş, grid içerisinden silme kodu verilmiş.

    DB'den silmek için delete from Tablo where blablabla kodunu yazmanız gerekiyor... Blablabla kısmında ya seçili satır yada tüm tablo koşulunuz ne ise onu yazmalısınız...

    5 Kasım 2019 Salı 15:08
  • Peki BindingSource'dan seçili satırı silmek gibi bir imkan yok mu? Bir metot yani
    • Düzenleyen Emre9394 6 Kasım 2019 Çarşamba 11:38
    6 Kasım 2019 Çarşamba 11:08