mehmetduran.com - Paylaşmak Güzeldir...
Asp.net ile Gridview'da CheckBox Oluşturma ve Kontrol Etme
Son günlerde internette sorulan sorulara baktığımda bu konunun fazlaca sorulduğunu gördüm ve bu konu üzerinde durdum ve kendimce bişeyler yaptım. Belki ihtiyaç duyanlara bir faydası olur.
Öncelikle yaptığım uygulamayı anlatayım.
Uygulamada gridview'da ki tüm satırları checkbox ile doldurup daha sonra bunları kontrol ediyorum. Yaptığım uygulama da 2 gridview var ve ilkini kendi oluşturduğum bir diziyle, diğerini ise veritabanındaki bilgilerle dolduruyorum ve checkboxlarla bu gridviewda'daki hangi satırın işaretlendiğini kontrol ettiriyorum.
Kodlarımıza(veritabanı uygulaması kodları) bakacak olursak:

protected void Page_Load(object sender, EventArgs e)
    {
        adaptor = new OleDbDataAdapter("select * from deneme", baglanti);
        tablo = new DataTable();
        adaptor.Fill(tablo);
        GridView2.DataSource = tablo;
        GridView2.DataBind();
        box2_olustur();
    }
public void box2_olustur()
    {
        for (int i = 0; i < tablo.Rows.Count; i++)
        {
            CheckBox c = new CheckBox();
            c.ID = "ch_" + i.ToString();
            Label l = new Label();
            l.Text = tablo.Rows[i]["isim"].ToString();
            GridView2.Rows[i].Cells[0].Controls.Add(c);
            GridView2.Rows[i].Cells[0].Controls.Add(l);
        }
    }


Bu kodlar ile öncelikle gridi dolduruyor ve sonra grid'te ki her satıra checkbox ekliyoruz. Bu checkbox'ların kontrolünü ise bir button_click eventı ile şöyle yapıyoruz:

protected void Button2_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < GridView2.Rows.Count; i++)
        {
            CheckBox c = (CheckBox)GridView2.Rows[i].Cells[0].FindControl("ch_" + i.ToString());
            if (c.Checked) // işaretlenen checkbox kontrolü, yapılcak işlem burada tanımlanacak.
            {
                Label l = new Label(); l.Text = " - işaretlendi";
                l.ForeColor = System.Drawing.Color.Red;
                GridView2.Rows[i].Cells[0].Controls.Add(l);
            }
            else
            {
                Label l = new Label(); l.Text = " - işaretlenmedi";
                l.ForeColor = System.Drawing.Color.Blue;
                GridView2.Rows[i].Cells[0].Controls.Add(l);
            }
        }
    }


Kodlarımız bu kadar ve bu uygulamanın hem veritabanı bilgileriyle hem de dizi bilgileriyle yapılmış halinin ekran görüntüsü ise şöyle:

Gridview ve CheckBox

Uygulamanın tamamını buradan indirebilirsiniz.
İyi Çalışmalar!
Mehmet Duran 20 Ağustos Çarşamba 2008 19 37541 4,5
Bookmark and Share
Bu Yazıyı Değerlendirin.
Konuyla İlgili Olabilecek Diğer Yazılar Yeni Tasarımı ile Facebook Asp ile Veritabanı İşlemleri Asal Sayı Programı Asp.net'te Session ile Sayfaların Okunma Bilgisini Tutma Access ile Asp.net'te Üyelik Sistemi
Yorumlar
Yorum Yaz
RSS Yorum Takibi
uzak 20 Ağustos Çarşamba 2008 12:40 #1
gerçekten çok işime yaradı teşekkürler.
Hakan 31 Ağustos Pazar 2008 16:27 #2
Bir sorum olacak. gridview e deyilde datalist e aynı şekilde nasıl checkbox ekleyebilirim yardım ederseniz sevinirim.
Mehmet Duran 31 Ağustos Pazar 2008 17:59 #3
Datalist ile yapacağınızı datagridview ile de yapabilirsin. Ancak yine de bu konuya bakacağım. İyi Çalışmalar.
::) 18 Ekim Cumartesi 2008 00:20 #4
İşime acayıp yaradı cok saol ...:)
cevap 22 Ekim Çarşamba 2008 21:58 #5
arkadasım bütün data controlerinde bunu yapabilirsin aynı şekilde
Erdem ÖZKARA 31 Ekim Cuma 2008 18:27 #6
Malesef beceremedim ve başarısız oldum :( Sorunu belirttiğim bir dosya hazırladım, vb.net ile çalışıyorum yardımcı olabilirseniz çok sevinirim. Dosyanın linki:
http://rapidshare.com/files/159373667/Asp.Net_Gridview_de_CheckBox_Kontrolue_Sorunu_VB.Net_ile_.rar
Mehmet Duran 31 Ekim Cuma 2008 20:13 #7
Merhabalar! (Erdem Özkara) Yapmaya çalıştığınızı anladım. Ancak sizin yaptığınız uygulama ile benim verdiğim örnke biraz farklı. Benim yaptığım örnekte checkboxlar page_load olayında oluşturuluyor. Sizin yaptığınızda ise runtime oluşuyor ve kontrollerin değerlerini alırken hataya düşüyorsunuz. Bu sorunla bende karşılaştım ve fırsat buldğumda çözmeye çalışacağım. İnşallah en kısa sürede çözerim ve sizleri haberdar ederim.
Hasan 03 Kasım Pazartesi 2008 12:32 #8
Bunu Ajax ile nasıl yaparız,sayfa yenilemeden ve butona basmadan check edildiği ve kaldırıldığı anda yapmak lazım ve
Mehmet Duran 03 Kasım Pazartesi 2008 19:07 #9
Ajax ile yine aynı şekilde yapılabilir. Ancak tam olarak bende bilmiyorum. Önümüzdeki günlerde bu konu üzerinde çalışacağım. Ajax ile dinamik kontrol oluşturma ve kontrol etme işlemleri hakkında çalışmalarım olacak.
omar 06 Aralık Cumartesi 2008 13:26 #10
Selam, CheckBox c = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("ch_" + i.ToString()); satırında Object reference not set to an instance of an object. hatası veriyor..
Mehmet Duran 06 Aralık Cumartesi 2008 13:39 #11
Merhaba. Bu hatayı almanızın nedeni bu kontrolleri runtime olarak oluşturmanızdan olabilir. Benim yaptığım uygulamada page load olayında kontrolleri oluşturup yakalayabiliyorum. Runtime olarakta yapılabilir ancak o zaman checkboxların işaret durumlarında sıkıntı oluyor.
hasan 25 Mayıs Pazartesi 2009 17:31 #12
İşaretli satırların toplamını bir labelde Ajax ile nasıl gösterebiliriz arkadaşlar,acilen lazım,devexpress örneğine bakınız lütfen,işaretlenen satılardaki fiyatları ajax ile tıoplama yapmak amacım :( lütfen yardım http://demos.devexpress.com/ASPxGridViewDemos/MSAjax/UpdatePanel.aspx
Emel 02 Temmuz Perşembe 2009 03:58 #13
Sayın Mehmet Bey, uygulamanız gayet faydalı oldu ancak check atılan rowa göre database e kayıt atmam lazım onu bir türlü yapamadım checked olayı bir türlü olmuyor. Yardımcı olabilrseniz sevinirim.
Mehmet Duran 02 Temmuz Perşembe 2009 12:08 #14
Daha önce de bu konuda sorunlar olmuştu. Eğer checkbox`ları runtime`da oluşturuyorsanız check konusunda sıkıntı oluyor. Checkbox`ları runtime`da oluşturmamalıyız. Yaptığınız örneği gösterebilir veya daha ayrıntılı bilgi verirseniz daha iyi yardımcı olmaya çalışırım.
Bora Şenyiğit 13 Şubat Cumartesi 2010 16:50 #15
Mehmet Bey verdiğiniz bu bilgi o kadar iyi geldi ki... Çok teşekkür ederim kendi adıma
Ramazan 19 Şubat Cuma 2010 00:10 #16
Çalışmanız için teşekkür ederim Mehmet Bey. C#'ta bir problemle karşılaştığım zaman ilk baktığım sitelerden biri burası.. Bu makalenizi referans alarak, MasterPage'den türettiğim aspx sayfasına yerleştirdiğim UserControl'ün içindeki image'i kontrol ettirmek istedim fakat başaramadım. image null değilse, başka bir imagebutton'un enabled'ını true yapmak istiyorum. Bu konuyla ilgili küçük bir paylaşımda bulunabilirseniz sevinirim. İyi çalışmalar diliyorum.
Mehmet Duran 19 Şubat Cuma 2010 00:23 #17
Bunun için birçok yöntem kullanabilirsin. Hem C# tarafında hem script tarafında bu tür işlemleri yapabilirsin.
Ramazan 19 Şubat Cuma 2010 01:55 #18
Bunu bir örnekle açıklayabilir misiniz?
Mehmet Duran 19 Şubat Cuma 2010 13:39 #19
Öncelikle zamanımın kısıtlı olduğunu belirteyim. Eğer önemli bir işlem ise server taraflı kodlama ile yapmalısın. Bunun için FindControl metodunu kullanabilir ve bulduğun kontrolün özelliklerini değiştirerek işlemi yapabilirsin. Script ile de elementin özelliğine bakarsın, null ise veya senin olmasını istemediğin değer ise diğer kontrolün özelliğini değiştirebilirsin.
İsim :
Site :
Yorum :

Buradan bu yazıya ait yorumları RSS olarak takip edebilirsiniz.

Bu servis ile yazılara eklenen yorumları RSS ile takip ederek konu ile ilgili başkaları tarafından yapılan yorumları veya konuyla ilgili sorduğunuz sorulara verilen cevapları görebilirsiniz.
Hizmet amaçlı işler başarıya, kar amaçlı olanlar ise başarısızlığa yöneliktir.
Bölümler
Yazılar
Arşiv
Arama
Linkler
Site İçi Arama
Son Zamanlarda Ne Yapıyorum ?
İstatistikler - Araçlar - Reklam
İstatistikler
Sayaç
Mehmet Duran | mehmetduran.com | Copyright © 2009