5 Ekim 2008 Pazar

Asp.Net 'de GridView RadioButton Column Oluşturma

Arkadaşlar bildiğiniz gibi Asp.Net ‘de GridView kontrolüne RadioButton eklenemiyor. Daha doğrusu ekleniyor ama server taraflı radio buton eklendiğinde radio butonların name değerleri sunucu tarafından atandığı için (ctl100_GridView1_ctl02_radioButon1 vb…)ve her bir radio butonun name değeri farklı olduğu için aynı anda tüm radio butonlar seçilebiliyor. Ya da radio butonun AutoPostBack değerini true yapıp tüm radio butonları sunucu tarafında kontrol ettirmek ki bu da performansı acayip şekilde yavaşlatır. Ya da en güzeli client taraflı radio butonlar oluşturup bunlar üzerinden işlemleri yapmak.


Şimdi anlatıma geçelim. İlk önce projemize GridView kontrolü ekleyelim. GridView ‘e de bir Tane TemplateColumn oluşturalım. TemplateColumn ‘un ItempTepmlate kısmına bir tane Literal ekleyelim. Li teral eklememizin amacı literalin Text özelliğine sayfa oluşturulurken dinamik olarak html kod atamak. Literal eklenmiş GridView ‘in kodları şu şekilde, ancak GridView ‘in RowCreated eventini de oluşturun:





Şimdi GridView ‘i dolduran fonksiyonumuzu yazalım. Bu fonksiyonu sayfanın Load eventinde çağırıyoruz:



Bu işlemlerden sonra GridView ‘in RowCreated eventini yazalım. Bu event ile her GridView ‘in her satırında bulunan Literalin Textine radio butonun html kodlarını yazıyoruz:



Gördüğünüz gibi projeyi çalıştırdığımızda aşağıdaki gibi olacaktır ve sadece tek radio buton seçilimi yapılabilinecektir:



Şimdi kaçıncı satırın seçildiğini bulmak için bir tane buton ekliyoruz. Butona basıldığı zaman GridView ‘in seçili satırının numarasını verecek. Bize seçili radio butonun değerini döndüren bir int tanımlıyoruz:



Böylelikle seçili radio butonun değerini öğrenebiliyoruz. Hatırlayacağınız gibi radio butonların değerlerini e.Row.RowIndex değerine eşitlemiştik. Yani değerleri GridView’in satır numarasına eşit. Şimdi butonumuza bastığımızda seçili satırın istediğimiz değerini alabiliriz:



Evet şimdi denemeyi yapalım:



Görüldüğü gibi 4 nolu satır seçildi ve alert mesajımızda o satırda bulunan haber adını aldık.


Bu da projenin Visual Studio 2008 ortamında geliştirilmiş projesi ve kullanılan mssql veri tabanı.



http://rapidshare.com/files/150952505/GridViewRadioColumn.rar.html