14 Kasım 2010 Pazar

ListBox Kontrolu




Listbox bize seçenek listesi verir. Standart olarak tekli seçim yapılan ListBox dilersek çoklu seçim için ayarlanabilir.


Özellikler

AutoPostBack: Listbox içinde bir seçim yapıldığı veya değiştirildiği zaman  formu otomatik  olarak gönderir. True değer aldığı zaman aktif olur,çalışır.


<%Page Language="C#" AutoEventWireup="True" %>

<html>

<head>

   <script runat="server">

      void Page_Load(Object sender, EventArgs e)

      {

          if (ListBox1.SelectedItem != null)

          {

              Label1.Text = "Renk : " + ListBox1.SelectedItem.Text;

              Label2.Text = "Değer : " + ListBox1.SelectedItem.Value;

          }

          else

          {

              Label1.Text = ""; Label2.Text = "";

          }

      }

   </script>

</head>

<body>

   <form id="Form1" runat="server">

      <asp:ListBox id="ListBox1"  Rows="5" AutoPostBack="True"  SelectionMode="Single"   runat="server">

         <asp:ListItem Value="#ffffff">Beyaz</asp:ListItem>

         <asp:ListItem Text="Kırmızı" Value="#ff0000"></asp:ListItem>

         <asp:ListItem Value="#0000ff">Mavi</asp:ListItem>

         <asp:ListItem Value="#00ff00">Yeşil</asp:ListItem>

         <asp:ListItem Value="#ffff00">Sarı</asp:ListItem>

         <asp:ListItem>Mor</asp:ListItem>

      </asp:ListBox>

      <br><br>

      <asp:Label id="Label1"  runat="server"/><br>

      <asp:Label id="Label2"  runat="server"/>

   </form>

</body>

</html>


DataMember: Listbox içeriğini  bir veri kaynağından alıyorsa ve bu kaynak birden fazla tabloya sahip ise bu özellik ile istenilen veri tablosu belirlenir.

DataSource: Bir veri kaynağı bağlantısı sağlar.Listbox ile istediğimiz bir veri kaynağına bağlantı yapabiliriz.

DataTextField: ListBox için bağlandığımız veri kaynağındaki istediğimiz veri alanını yani veri tablosundaki sutunu alanı adını yazarak bağlanmamızı sağlar. 

DataTextFormatString: ListBox verilerinin biçimlendirilmesini sağlar. Aynı zamanda string olarak biçimini bize okur.

DataValueField: ListBox içindeki her bir alanın değerini belirlemek için datasource da ki veri kaynağından bir alan seçer.

Items:  ListBoxkoleksiyonunun elemanlarını belirtir.

SelectedIndex:  listBox içinde seçili elemanın indeks numarasını verir.

SelectedItem: ListBox içinde seçili elemanın kendisini temsil eder.

SelectedValue:   Listbox elemanlarına değer verir veya elemanlarının değerlerini öğrenir.

Rows: Listbox için satır sayısını belirler. Varsayılan olarak dörttür.

SelectionMode: Listbox içinde tek veya çoklu seçim yapılmasını ayarlar. Multiple veya Single değerlerinden birini alır. Standar olarak Single değeri alır.

Metotlar

OnSelectedIndexChanged: ListBox için SelectedIndexChanged olayını üretir. SelectedIndexChanged olayı üzerinde düzenleme yapmamızı sağlar. 

DataBind:  Bir DataSource'a(veri kaynağına) bağlanan ListBox'a verilerin yüklenmesini sağlar.

Olaylar 

SelectedIndexChanged: ListBox elemanlarından biri seçildiği veya değiştirildiği zaman bu olay gerçekleşir.


Örnek




<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
   <script runat="server" >

      void Page_Load(Object sender, EventArgs e)
      {
          if (ListBox1.SelectedItem != null)
          {
              Label1.Text = "Renk Adı : " + ListBox1.SelectedItem.Text; Label1.BackColor = System.Drawing.Color.FromName(ListBox1.SelectedItem.Value);
              Label2.Text = "Renk Değeri : " + ListBox1.SelectedItem.Value; Label2.BackColor = System.Drawing.Color.FromName(ListBox1.SelectedItem.Value);
          }
         if(!IsPostBack)
         {
             ListBox1.DataSource = verikaynak();
            ListBox1.DataTextField = "renkadi";
            ListBox1.DataValueField = "renkdegeri";
            ListBox1.DataBind();
            ListBox1.SelectedIndex = 0;
         }
      }

      ICollection verikaynak()
      {
         DataTable dt = new DataTable();
         dt.Columns.Add(new DataColumn("renkadi", typeof(String)));
         dt.Columns.Add(new DataColumn("renkdegeri", typeof(String)));
         dt.Rows.Add(satirolustur("Beyaz", "#ffffff", dt));
         dt.Rows.Add(satirolustur("Kırmızı", "#ff0000", dt));
         dt.Rows.Add(satirolustur("Mavi", "#0000ff", dt));
         dt.Rows.Add(satirolustur("Yeşil", "#00ff00", dt));
         dt.Rows.Add(satirolustur("Sarı", "#ffff00", dt));
         dt.Rows.Add(satirolustur("Mor", "#8800ff", dt));
         DataView dv = new DataView(dt);
         return dv;
      }
      DataRow satirolustur(String metin, String deger, DataTable dt)
      {
         DataRow dr = dt.NewRow();
         dr[0] = metin;
         dr[1] = deger;
         return dr;
      }

   </script>

<head id="Head1" runat="server">
    <title>  </title>
</head>
<body>
   <form id="form1" runat="server">
      <asp:ListBox ID="ListBox1"   AutoPostBack="True"   runat="server" Width="200" Rows="7"/><br />
      <asp:Label ID="Label1" runat="server" /><br />
      <asp:Label ID="Label2" runat="server" /><br />
   </form>
</body>
</html>


Hiç yorum yok:

Yorum Gönder