Ana Sayfa » Ders Notları ve Örnekler » ASP.NET » Liste Web Kontrolleri (ListBox, DropDownList, CheckBoxList, RadioButtonList)

Uyarılar :
  • Bu sayfada yazılanlar yeniden yayınlanamaz.
  • Bu örnek ders sırasındaki anlatımlardan derlenmiştir. Özellikle bir makale şeklinde yazılmamıştır. Bilgilerde eksiklikler bulunabilir.

Örnek :

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    void Page_Load(Object o, EventArgs e)
    {
    
    }
    void btnGonder_Click(Object o, EventArgs e)
    {
        ltSecimler.Text = "ListBox kontrolünün seçilen elemanının sıra numarası : ";
        ltSecimler.Text += lbSehirler.SelectedIndex.ToString();
        ltSecimler.Text += "<br>ListBox kontrolünün seçilen elemanının value özelliği değeri : ";
        ltSecimler.Text += lbSehirler.SelectedValue;
        ltSecimler.Text += "<br>ListBox kontrolünün seçilen elemanının text özelliği değeri : ";
        ltSecimler.Text += lbSehirler.SelectedItem.Text;
        // CheckBoxList kontrolünde birden fazla seçim yapılabileceğinden yukarıdaki özellikler
        // yerine Items koleksiyonu kullanılır.
        ltSecimler.Text += "<br>Onay kutusu listesinin (CheckBoxList) 0. elemanı...";
        ltSecimler.Text += "<br>0. eleman seçili mi? ";
        ltSecimler.Text += cblSehirler.Items[0].Selected;
        ltSecimler.Text += "<br>0. elemanın value değeri ";
        ltSecimler.Text += cblSehirler.Items[0].Value;
        ltSecimler.Text += "<br>0. elemanın text değeri ";
        ltSecimler.Text += cblSehirler.Items[0].Text;
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <h4>Liste Web Kontrolleri</h4>
    <form id="form1" runat="server">
    <asp:Literal id="ltSecimler" runat="server" /><br />
    Bir ListBox<br />
    <asp:ListBox ID="lbSehirler" runat="server" Rows="6">
        <asp:ListItem Text="Ankara" Value="06" />
        <asp:ListItem Text="İstanbul" Value="34" />
        <asp:ListItem Text="İzmir" Value="35" />
    </asp:ListBox>
    <hr />
    Bir DrowDownList<br />
    <asp:DropDownList ID="ddlSehirler" runat="server">
        <asp:ListItem Text="Ankara" Value="06" />
        <asp:ListItem Text="İstanbul" Value="34" />
        <asp:ListItem Text="İzmir" Value="35" />
    </asp:DropDownList>
    <hr />
    Bir CheckBoxList<br />
    <asp:CheckBoxList ID="cblSehirler" runat="server" RepeatDirection="Horizontal">
        <asp:ListItem Text="Ankara" Value="06" />
        <asp:ListItem Text="İstanbul" Value="34" />
        <asp:ListItem Text="İzmir" Value="35" />
    </asp:CheckBoxList>
    <hr />
    Bir RadioButtonList<br />
    <asp:RadioButtonList ID="rblSehirler" runat="server" RepeatColumns="2">
        <asp:ListItem Text="Ankara" Value="06" Selected="True" />
        <asp:ListItem Text="İstanbul" Value="34" />
        <asp:ListItem Text="İzmir" Value="35" />
        <asp:ListItem Text="Nevşehir" Value="50" Enabled="False" />
        <asp:ListItem Text="Van" Value="65" />
        <asp:ListItem Text="Niğde" Value="51" />
    </asp:RadioButtonList>
    <hr />
    <asp:Button ID="btnGonder" runat="server" Text="Gönder" OnClick="btnGonder_Click" />
    </form>
</body>
</html>

ASP.NET Liste kontrollerinden en çok kullanılan 4 tanesi ListBox, DropDownList, RadioButtonList ve CheckBoxList'dir. Bu web kontrollerinin tanımlanmaları ve kullanımları birbirlerine çok benzer. Aralarında sadece görüntü ve ufak tefek görev farkları bulunmaktadır. Bu sebeple kontrollerden bir tanesini öğrenen diğerlerini de rahat bir şekilde kullanabilir. Örneğin çıktısı aşağıda görüldüğü şekildedir.

ListBox web kontrolü, bir liste kutusu görüntüler. Görüntülenecek satır sayısını belirlemek için "ROWS" özelliği kullanılabilir. Ekranda ROWS özelliğinde belirtilen kadar satırlı bir liste görüntülenir. ROWS özelliği 1 olarak ayarlandığında DropDownList kontolünün aynısı bir açılan liste görüntülenir. Bu kontrolün "SelectionMode" özelliğinin değerini "Single" ayarlayarak listeden sadece 1 tane, "Multiple" olarak ayarlayarak 1 elemandan fazlasının seçilebilmesini sağlayabiliriz.

Tüm liste kontrollerinin elemanlarını tanımlamak için liste kontrolünün başlangıç ve bitiş etiketleri arasında her bir eleman için 1 tane olmak üzere ASP.NET ListItem web kontrolü kullanılır.

ASP.NET ListItem web kontrolü, listede eleman için görüntülenecek metni belirtmeye yarayan TEXT, eleman seçildiğinde sunucuya gönderilecek değeri tutan VALUE, eleman seçili görüntülenmek isteniyorsa kullanılacak SELECTED ve elemanın seçilmesini engelemek veya izin vermek için kullanılabilecek ENABLED özelliklerine sahiptir.

    <asp:RadioButtonList ID="rblSehirler" runat="server" RepeatColumns="2">
        <asp:ListItem Text="Ankara" Value="06" Selected="True" />
        <asp:ListItem Text="İstanbul" Value="34" />
        <asp:ListItem Text="İzmir" Value="35" />
        <asp:ListItem Text="Nevşehir" Value="50" Enabled="False" />
        <asp:ListItem Text="Van" Value="65" />
        <asp:ListItem Text="Niğde" Value="51" />
    </asp:RadioButtonList>

RadioButtonList, örnekte görüldüğü gibi bir radyo tuşu listesi, CheckBoxList ise bir onay kutusu listesi görüntüler. Bu iki kontrolün "RepeatDirection" (Tekrar yönü, Horizontal -Yatay- ve Vertical -Dikey- olarak belirlenebilir), "RepeatCoulumns" (Tekrar sütünları, sütün sayısı yazılır) ve "RepeatLayout" (Tekrar yerleşimi, yerleşim şekli Flow -Kayan / Akıcı- veya Table olarak belirlenebilir) özellikleri kullanılarak elemanlarının bir tablo halinde ve istenen sütün sayısınca ya da yüzen kontroller şeklinde dizilmesi sağlanabilir.

Listelerin seçilmiş elemanları üzerinde işlem yapmak için en çok kullanılan yöntemler şunlardır;

Listeden tek eleman seçilebiliyor ise seçili olan bu elemana "SelectedItem" özelliği ile ulaşabiliriz. SelectedItem özelliği bize seçili olan elemanı bir ListItem nesnesi olarak verir. Biz de ListItem nesnesinin yukarıda bahsedilen Text, Value, Enabled ve Selected özelliklerini kullanarak seçilmiş olan elemanla ilgili olarak işlemler yapabiliriz.

Örneğin "lbSehirler", bir ListBox'un ID özelliği değeri ise;

   lbSehirler.SelectedItem.Value

ifadesi bize lbSehirler isimli ListBox'un seçilmiş elemanının Value özelliğinin değerini verir.

SelectedItem dışında, seçili olan elemanın listedeki sıra numarasına (ilk elemanın numarası 0 olmak üzere) liste kontrolünün "SelectedIndex" özelliği ile seçilen elemanın sıra numarasına, "SelectedValue" özelliği ile seçilen elemanın Value özelliğinin değerine ulaşırız.

Örneğin "lbSehirler", bir ListBox'un ID özelliği değeri ise;

   lbSehirler.SelectedValue

bize yine üstte olduğu gibi lbSehirler isimli ListBox'un seçilmiş elemanının Value özelliğinin değerini verir.

RadioButtonList, CheckBoxList ve SelectionMode özelliği Multiple olarak ayarlanmış ListBox kontrollerinde 1 elemandan fazlası seçilebilir. Bu durumda bu kontrollerin SelectedItem, SelectedValue veya SelectedIndex özellikleri ile tüm seçilen elemanları tespit etmemiz imkansızdır. Bu durumda liste kontrollerinin hepsinde bulunan "Items" (ListItemCollection) koleksiyonunu kullanırız.

Items özelliği, liste kontrollerinin ListItem türünden olan elemanlarının listesini tutan bir koleksiyondur. Bu koleksiyona elemanın sıra numarasını index olarak geçerek ilgili elemanın referansını, yani ilgili elemaın ListItem türünden nesne referansını elde ederiz. Elde ettiğimiz bu ListItem nesnesinin SELECTED, TEXT, ENABLED ve VALUE özellik değerlerini kullanarak eleman hakkında bilgi elde ederiz. Aşağıdaki kodu inceleyiniz...

    // lbSehirler isimli liste kontrolünün 0. elemanını ListItem türünden bir değişkene ata
    ListItem eleman = lbSehirler.Items[0];
    // ListItem türünden eleman isimli nesnenin SELECTED özelliğinin değerini iste.
    Boolean secili = eleman.Selected;

En üstteki örnekte "cblSehirler" isimli CheckBoxList türünden listenin 0. (sıfırıncı) elemanının "Selected" özelliğinin değeri bir Label kontrolünün Text özelliğine eklenmektedir.

Bu şekilde Items koleksiyonundaki elemanları tek tek kontrol ederek 1 elemandan fazla seçilen liste kontrollerinin hangi elemanlarının seçili olduğunu öğrenebiliriz.

İletişim : hazirsite@gmail.com