Bu yazımızda Advanced DataGrid Filtering denilen özelliği öğreneceğiz. Bu özellik exceldeki filtre özelliğini datagrid nesnemizde yapmaya yarayacak. Bir önceki yazımızda excel dosyamızdaki verileri datagrid nesnemize import etmeyi öğrenmiştik. (Bkzn: Import Excel to Datagrid)

Aynı kod üzerinden ilerleyeceğiz arkadaşlar. Bir kaç değişiklik yapacağız. İlki Project Menusünde Manage Nuget Pakacge sekmesine girip kullanmak istediğimiz Advanced DataGrid Filtering kütüphanemizi ekleyeceğiz.

C# nuget Advanced DataGrid Filtering

C# nuget Advanced DataGrid Filtering

Bu paketi eklemek için Browse sekmesine tıklayarak arama kısmına yazarsanız otomatik olarak gelecektir. Install diyerek yükleyin.

Advance DataGrid Filtering

Advance DataGrid Filtering

Paketimizi yükledikten sonra Toolbox sekmesinden advancedatagridview nesnemizi formunuza ekleyin. Ayrıca bindingsource nesneside eklemeyi unutmayın. Bindingsource nesnemizi datagrid nesnemize aşağıdaki gibi bağlamalısınız. Ayrıca faklı dataset’ ler oluşturarak birbirlerinze bağlayabilirsiniz. Örneğin bir sql veritabanı olabilir. Biz burada excel dosyasını okuyacağız. Aynı şey.

C# Excel Datagrid Filtering

C# Excel Datagrid Filtering

Ayarlamaları yaptıktan sonra gelelim kodumuza. İlk önce Excel dosyamızdaki verimizi okutacağız. Daha sonra bunu datagridview nesnemize yükleyeceğiz. Bu sayede exceldeki verilerimizi datagridview nesnemizde görmüş olacağız. Zaten buraya kadar bir önceki yazımızda yapmıştık. Burada yapmak istediğimiz filtre ve sıralama events (olaylarını) kullanmak. Bunun için advancedagridview nesnemize tıklayın ve “Properties” penceresinden “Events” kısmında “SortStringChanged” ve “FiltreStringChanged” event’ larına çift tıklayarak kod sayfasını açın.

C# Datagridview Sort and Filter

C# Datagridview Sort and Filter

Kod sayfasında aşağıdaki kodları yazın.

// www.kaizen40.com

using System;
using System.Data;
using System.Windows.Forms;
using System.Data.OleDb;

namespace ImportExcelToDatagrid
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void BtnEkle_Click(object sender, EventArgs e)
        {
            OpenFileDialog file = new OpenFileDialog();
            //file.Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls";  
            file.FilterIndex = 2;
            file.RestoreDirectory = true;
            file.CheckFileExists = false;
            file.Title = "Excel Dosyası Seçiniz..";
            file.ShowDialog();

            //string DosyaYolu = file.FileName;
            //string DosyaAdi = file.SafeFileName;
            TxtAdres.Text = file.FileName;
        }

        private void BtnOku_Click(object sender, EventArgs e)
        {
            string constr = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" + TxtAdres.Text + "; Extended Properties =\"Excel 8.0; HDR = Yes;\";";
            OleDbConnection con = new OleDbConnection(constr);
            OleDbCommand oconn = new OleDbCommand("Select * From [" + TxtSayfa.Text + "$]", con);
            con.Open();

            OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
            DataTable data = new DataTable();
            sda.Fill(data);
            advancedDataGridView1.DataSource = data;
            bindingSource1.DataSource = data;

            con.Close();
        }

        private void advancedDataGridView1_SortStringChanged_1(object sender, EventArgs e)
        {
            bindingSource1.Sort = advancedDataGridView1.SortString;
        }

        private void advancedDataGridView1_FilterStringChanged_1(object sender, EventArgs e)
        {
            bindingSource1.Filter = advancedDataGridView1.FilterString;
        }
    }
}

Kodunuzu çalıştırın ve excel dosyanızı seçin. Excel dosyanızda verilerinizin bulunduğu sayfayı ikinci textbox’ a yazın ve “OKU” butonuna basın. Verilerinizin geldiğini görün. Başlıkaların yanındaki aşağı ok simgesine basarak filtreleme ve sıralama peneresi açılacaktır.

C# Datargidview Filtre Pencresi

C# Datargidview Filtre Pencresi

Bu pencereden istediğiniz filtrelemeyi ve sıralamayı yapabilirsiniz arkadaşlar. Umarım işinize yaramıştır. İyi çalışmalar,

C# Datargirdview Filtreleme

C# Datargirdview Filtreleme


7 yorum

sefa · 26 Haziran 2019 19:55 tarihinde

ben bunu toolboxtan advancedatagridview nesnesini ekleyemiyorum. yardımcı olabilir misiniz?

Remzi Şahinoğlu · 26 Haziran 2019 20:01 tarihinde

Merhaba, ilk önce yukarıda bahsettiğim gibi “Manage Nuget Package” kısmından AGDV kütüphanesini eklemelisiniz. Bu sayede toolbox’ ta gözükecekir.

sefa · 26 Haziran 2019 20:32 tarihinde

O problemi çözdüm fakat programı çalıştırdığımda filtreleme yapmıyor. neden olabilir.

sefa · 26 Haziran 2019 21:12 tarihinde

tamam problemi çözdüm. Teşekkürler bilgiler için 🙂

Anonim · 16 Ağustos 2019 22:33 tarihinde

yeni pakette filter menu ve search toolbar gibi nesnelerde çıkmış…

Gültekin Örenç · 8 Eylül 2020 13:42 tarihinde

Merhaba Bu filtreleme Listview için de yapabilir miyiz

    Remzi Şahinoğlu · 17 Eylül 2020 07:22 tarihinde

    merhaba, bu kütüphanenin yok ama list view için başka kütüphaneler yapılmış olabilir, araştırmak lazım.

Bir cevap yazın

Avatar placeholder

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.