İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# DevExpress GridControl Kodla Bir Sütuna Filtre Uygulama

C# DevExpress GridControl Kodla Bir Sütuna Filtre Uygulama
+ - 4

C# DevExpress GridControl Kodla Bir Sütuna Filtre Uygulama, dersim ile C# eğitim setime devam ediyorum. Bu dersimde DevExpress GridControl nesnesine kod ile filtre uygulama işlemine bakacağız.

C# DevExpress GridControl Kodla Bir Sütuna Filtre Uygulama

DevExpress kullanıyorsanız, şüphesiz en sevdiğiniz nesne GridControl / GridView’dir. Çünkü kod yazmadan inanılmaz özelleştirmeler yapabiliyoruz. Ancak bazen kod ile özelleştirmeler yapmak durumunda kalıyoruz. Örneğin benim için bu dersi yazma sebebim olan istek, bir sql sorgusunu gridview ‘de gösterdikten sonra grid üzerine filtreler vererek kontrol süresini kısaltmak.

Elbette bu filtreleri sql sorgusu ile verebilirdim ama o işime gelmiyor çünkü sorgudan devasa boyutta bilgi geliyor. Kullanıcı her filtre vermesinde tekrar tekrar sql ‘e gidip tekrar sorgu çekilmesi ve listenin yenilenmesi kanser edici bir hale dönüşüyor. Bu yüzden hızlı bir şekilde kullanım ve kontrol sağlamak amacı ile gridview üzerinde filtreler vererek bir kere yüklenen liste üzerinde çalışmak daha mantıklı oluyor.

 

Nasıl yapılır: Kodla Bir Sütuna Filtre Uygulama

Şimdi bu filtreleri nasıl vereceğimizi görelim.

Gerekli olan NameSpace;

using DevExpress.XtraGrid.Columns;

Aşağıdaki kod, gönderen ülke adları ‘F’ ile başlayan kayıtları seçer. Gerekli filtre, bir ColumnFilterInfo nesnesi kullanılarak oluşturulur . Daha sonra GridColumn.FilterInfo özelliğine atanır .

gridView1.Columns["GonderenUlke"].FilterInfo =   new ColumnFilterInfo("[GonderenUlke] LIKE 'F%'");

Yukarıda gördüğünüz şekilde SQL sorgularında where kısmına benzer şekilde kullanım yapıyoruz. Şimdi bir kaç örnek daha görelim.

 

Diğer örneğimiz için bu NameSpace’de gereklidir.

using DevExpress.XtraGrid.Views.Base;
ColumnView view = gridView1;
view.ActiveFilter.Add(view.Columns["KategoriAdı"],   new ColumnFilterInfo("[KategoriAdı] Like 'c%'", ""));

Yukarıdaki örnekteki kod, bir görünüme ColumnView.ActiveFilter nesnesi aracılığıyla bir görünüme filtre koşulunun nasıl ekleneceğini gösterir . Filtre koşulu, KategoriAdı alanları ‘c’ ile başlayan kayıtları seçer.

İlk örnektekinden farklı bir şekilde verilmiş bir filtredir.

 

Burada birden fazla da filtre verebiliriz. O işlemi de bir görelim.

using DevExpress.XtraGrid.Views.Base;
using DevExpress.XtraGrid.Columns;


ColumnView view = gridView1;
ViewColumnFilterInfo viewFilterInfo = new ViewColumnFilterInfo(view.Columns["KategoriAdı"], 
  new ColumnFilterInfo("[KategoriAdı] = 'Haber' OR [KategoriAdı] = 'Makale'", ""));
view.ActiveFilter.Add(viewFilterInfo);

Gördüğünüz gibi KategoriAdı kolonu üzerinden Haber Veya Makale olanları istedik.

Yukdarıda bahsettiğim gibi SQL sorgularımızdaki Where kısmında yazdığımız şartlar gibi. Aralarında Çok bir fark yok.

 


C# DevExpress GridControl Kodla Bir Sütuna Filtre Uygula dersimiz de bu kadar arkadaşlar. Diğer derslerimizde görüşmek üzere.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…

Takipte ve Sağlıcakla kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Cevabı İptal Et

Yorumlar (4)

  1. Peki “DegiskenAdı” isminde bir değişkenimiz var. Bu değişkeni kullanarak “FIRMAID” sütununa nasıl filtreleme yapabiliriz ?

    • Merhaba, denemedim ama
      gridView1.Columns[“GonderenUlke”].FilterInfo = new ColumnFilterInfo(“[GonderenUlke] LIKE ‘”+DegiskenAdı+”%'”);
      bu şekilde olması gerek diye düşünüyorum.

  2. 2 sene önce

    Merhaba Mustafa Bey;
    Paylaşımlarınız için Teşekkür ederim öncelikle emeğinize sağlık.Sormak istediğim bir şey var benim griddeki Örnek veriyorum Fiş türü satırında yer alan Alış Faturası harici diğer faturalar gelsin gibi bir filtreleme nasıl yapabilirim.

    • Merhaba,
      Güzel yorumunuz için teşekkür ederim. :)

      Bu satıra bir bakalım. GonderenUlke sütunundaki bilgilerden F ile başlayanları getir demek oluyor. Bunu sağlayan komut ile LIKE komutudur.
      gridView1.Columns[“GonderenUlke”].FilterInfo = new ColumnFilterInfo(“[GonderenUlke] LIKE ‘F%'”);
      İsteğiniz şeklinde düzeltelim
      gridView1.Columns[“GonderenUlke”].FilterInfo = new ColumnFilterInfo(“[GonderenUlke] LIKE ‘FRANSA'”); olsun.
      Bizde FRANSA hariç diğer ülkeleri almak istersek LIKE komutunu ters çevirmemiz (olumsuzlaştırmamız) gerekir. O halde LIKE’ın önüne NOT eklememiz gerekir.

      gridView1.Columns[“GonderenUlke”].FilterInfo = new ColumnFilterInfo(“[GonderenUlke] NOT LIKE ‘FRANSA'”);
      Artık FRANSA hariç diğer ülkeler demiş olduk.

mahmut için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak.