Forum

Datagridview filtre...
 
Bildirimler
Hepsini Temizle

[Çözüldü] Datagridview filtreleme

6 Yazılar
3 Üyeler
0 Reactions
206 Görüntüleme
(@yildirimbakar)
Gönderiler: 104
Estimable Member
Konu başlatıcı
 

Merhaba Arkadaşlar;

Advanced datagrid view'e verileri aşağıdaki gibi getiriyorum. Gelen değerleri durumuna göre filtreleyebiliyorum. Fakat datagridview'i filtreli olarak getirip sadece Başlamadılar ve Kabul edildi olanlar gelsin. Diğerlerini istersem filtreden seçerek getirebileyim. Bunu nasıl yapabilirim acaba?

Teşekkür ederim.

da = new SqlDataAdapter("SELECT NO as NO,ADI as ADI,
CASE when DURUM=0 then 'Başlamadı' when DURUM=1 then 'Reddedildi' when DURUM=2 then 'Kabul edildi'
when DURUM=3 then 'Tamamlandı' end as DURUMU
FROM Form order by NO", baglan());
dt = new DataTable();
da.Fill(dt);
advancedDataGridView.DataSource = dt;

baglan().Close();
advancedDataGridView.ClearFilter();

 
Gönderildi : 18/10/2024 18:13

(@serkanates)
Gönderiler: 1318
Üye
 

Merhaba;

BindingSource bileşenini kullanabilirsiniz. Aşağıdaki makale ve örnek yönlendrici olacaktır. İyi çalışmalar.

Bknz: https://learn.microsoft.com/tr-tr/dotnet/desktop/winforms/controls/bindingsource-component-overview?view=netframeworkdesktop-4.8

BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = dt;
advancedDataGridView.DataSource = bindingSource;
bindingSource.Filter = "DURUMU = 'Başlamadı' OR DURUMU = 'Kabul edildi'";
 
Gönderildi : 18/10/2024 21:22

(@yildirimbakar)
Gönderiler: 104
Estimable Member
Konu başlatıcı
 

@serkanates 

Cevabınız için çok teşekkür ederim Serkan bey;

Fakat şöyle bir şey daha soracağım. Aşağıdaki gibi yazdığımda ekteki gibi sadece Başlamadı ve Kabul edildileri getirip filtreliyor. Buraya Tamamlandılar da filtresi seçili olmadan nasıl getirebilirim. Kullanıcı isterse onu da filtre olarak seçebilsin. 

Adsız

 

dt = new DataTable();
da.Fill(dt);
BindingSource bs;
bs = new BindingSource();
bs.DataSource = dt;
advancedDataGridView.DataSource = bs;
bs.Filter = "DURUMU='Başlamadı' OR DURUMU='Kabul edildi'";
baglanti().Close();

Bu ileti 1 ay önce Yıldırım bakar tarafından düzenlendi
 
Gönderildi : 21/10/2024 17:53

(@serkanates)
Gönderiler: 1318
Üye
 

Merhaba tekrar,

Açıkcası ne yapmak istediğinizi şimdi anladım. Örnek oluşturup test edecek zamanım olmadığı için hazırlayamadım ama aşağıdaki süreci test edebilir misin?

1. advancedDataGridView FilterString özelliğini kullanabilirsin.

advancedDataGridView1.FilterString = "[Yaş] > 30";

2. AdvancedDataGridView1_FilterStringChanged metodu ile filtre değiştiğinde çalışmasını istediğin fonksiyonları yönetebilirsin.

 
Gönderildi : 22/10/2024 08:32

(@yildirimbakar)
Gönderiler: 104
Estimable Member
Konu başlatıcı
 

@serkanates Merhaba Serkan bey;

DataGridView_ColumnHeaderMouseClick kısmına aşağıdaki gibi yazarak sorunu çözdüm. Filtreyi açmak için başlığa tıkladığında filtre ve datagridview'i yeniden yüklüyor. Yardımlarınız için teşekkür ederim.

dt = new DataTable();
da.Fill(dt);
BindingSource bs;
bs = new BindingSource();
bs.DataSource = dt;
advancedDataGridView.DataSource = bs;
bs.Filter = null;

 
Gönderildi : 23/10/2024 10:36

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 33320
Illustrious Member Yönetici
 

Geri dönüş ve bilgi için teşekkürler.

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 24/10/2024 15:27

Paylaş: