26 Nisan 2013 Cuma

C# Tüm CheckBox' ları Seçmek

Hepimizin mail sayfalarında gördüğü üzere tek tıkla tüm mailleri seçip silebiliyoruz. Şimdi bu tek tıkla tüm checkboxları seçme işlemini görelim. Sayfada belirsiz sayıda checkbox olsun. Biz bunları foreach döngüsü ile tek tek bulacağız.




Yapımız yukarıdaki gibi. Ben Tümünü Seç' e tıkladığım zaman sayfada varolan dört tane checkbox' ın da seçili hale gelmesini istiyorum. Bunun için önce Tümünü Seç checkbox' ının koduna bakalım:
<asp:CheckBox ID="chckAll" runat="server" Text="Tümünü Seç" AutoPostBack="true" OnCheckedChanged="chckAll_CheckedChanged"/>

AutoPostBack özelliği checbox' ı işaretlediğimiz anda başka hiçbir şey yapmadan bağladığımız eventin tetiklenmesini sağlayacak.

OnCheckedChanged eventi ise checkbox seçili hale gelince çalışacak kodları barındırır. Şimdi bu kodlara gelelim;

protected void chckAll_CheckedChanged(object sender, EventArgs e)
    {
        foreach (Control chck in Panel1.Controls)
        {
            if (chck is CheckBox)
            {
                if ((chck as CheckBox).Checked == false)
                {
                    (chck as CheckBox).Checked = true;
                }
            }
        }
    }

Önce foreach ile tek tek gelen kontrollerin bir checkbox olup olmadığına baktık.
Daha sonra seçilen kontrölün checkbox olduğunu doğrulamak için is operatörünü kullandık.
Son olarak da as operatörü ile checkboz olduğuna karar verdiğimiz kontrole atama yaptık.

0 yorum:

Yorum Gönder