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

C# DevExpress GridView Satır Numarası Ekleme

C# DevExpress GridView Satır Numarası Ekleme
+ - 0

Merhabalar, C# DevExpress GridView Satır Numarası Ekleme yazım ile C# eğitim setime devam ediyorum. Bu dersimizde bir DevExpress nesnesi olan Gridview’ e satır numarası ekleme işlemini göreceğiz. Sıra numarasını  Gridview nesnesinin en sol kısmında olan küçük  alana (Indicator = Gösterge)  ekleyeceğiz. Dersin geri kalanında ekran görüntüleri üzerinden net şekilde görebileceksiniz.

C# DevExpress GridView Satır Numarası Ekleme

Bazen DevExpress kullandığınız projelerinizde gridview’lerde satırlara sıra numarası eklemek isteyebilirsiniz. Ya da size bu şekilde bir talep gelebilir.  SQL tarafında ROW_NUMBER  kullanmayı düşünebilirsiniz ama bu satır numarası sabit kalıyor. Yani girdview üzerinde bir filtre yada farklı kolonlara göre sıralama verdiğinizde sql tarafından gelen row number değişmeyeceğinden sıralı olmayacaktır. Burada yapacağımız şey gridview nesnesine küçük bir müdahele  olduğundan istediğiniz şekilde filtre yada sıralama verseniz bile bu satır numaraları sabit kalacaktır. Yani 1 .satırda her zaman 1 yazacaktır.

Ayrıca bu işlemi sadece kod ile yapacağız. Yani Designer tarafında bir değişiklik yapmayacağız.


Hatırlarsanız daha önce Gridview kod ile özelleştirme başlığı ile bir ders paylaşmıştım. Bu derse devam etmeden önce yandaki derse gidip bir bakın derim. O dersteki kodları da GridView_Update() adında bir metoda alalım. Yani ben bu şekilde kullanıyorum.  Birazdan sizlere vereceğim kodları da GridView_Update() metodunun en altına koyacağız. Bu şekilde metodumuzu her kullandığımızda satır numarasını otomatik eklemiş olacağız.

Öncelikle Indicator (Gösterge) alanını biraz genişletmemiz lazım. Aşağıdaki görselde kırmızı işaretli alan Indicator alanıdır.

DevExpress GridView Satır Numarası Ekleme

gridView1.IndicatorWidth = 40;
NOT: Satıra odaklandığınızda yani tıkladığınızda bu alanda küçük bir sağ tarafı gösteren ok belirliyor.  Bu ok belirdiğinde sayıların sığmama gibi bir durumu oluyor.  Siz dilediğiniz gibi bu alanı genişletebilirsiniz.

Şimdi Indicator alanında satır numaralarını göstermeye gelelim. Bunun için bir event kullanmamız gerekiyor. Ancak her seferinde bu eventi tanımlamak bir zahmet. Bu yüzden bu atamayı kod ile yapacağız.

gridView1.CustomDrawRowIndicator += GridView1_CustomDrawRowIndicator;

Event atamasını yaptık. Şimdi Eventi oluşturalım ve kodlarımızı yazalım.

        private void GridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
        {// satır numarası
            if (e.RowHandle >= 0) e.Info.DisplayText = (e.RowHandle + 1).ToString();
        }

Bu şekilde Indicator alanında satır numaralarını gösterebiliyoruz. Eğer gridview’de bir satır var ise, Indıcator’un info alanında görünen metin olarak satır numarasını yazmasını istemiş olduk.

Şimdi yukarıda bahsettiğim olaya gelelim.

Ben Gridview kod ile özelleştirme buradaki tüm kodları GridView_Update() adında bir metot ile kullanıyorum. Bu metodu her grid kullandığım yerde kullanıyorum. Şimdi yukarıda verdiğim kodları da metoduma ekliyorum

        private void GridView_Update()
        {
        // diğer kodlar
        //...
        //...
        //...
        //...
        // diğer kodlar
        
        
        // satır numarası
            gridView1.IndicatorWidth = 40;
            gridView1.CustomDrawRowIndicator += GridView1_CustomDrawRowIndicator;
        }
        private void GridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
        {// satır numarası
            if (e.RowHandle >= 0) e.Info.DisplayText = (e.RowHandle + 1).ToString();
        }

Gördüğünüz gibi artık bu metodu kullandığım her formdaki tüm gridview’lerime otomatik olarak satır numarası eklemiş oluyorum.  Sizde bu kodları benim gibi kullanıyorsanız fikir vermek açısından bu noktadan da bahsetmek istedim.


C# DevExpress GridView Satır Numarası Ekleme yazımda bu kadardı arkadaşlar. Diğer yazılarımızda 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…

476. Yazı bitti.

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. :)