9 Kasım 2010 Salı

CheckBoxlist Kontrolu


CheckBoxlist kontrolu ChekBox kontrolu listesi oluşturur. Yani onay kutularını sıralar.


Özellikleri
AutoPostBack: CheckboxList içindeki onay kutu listesinden herhangi bir CheckBox işaretlendiği veya işareti kaldırıldığı zaman bu olay gerçekleşir.True değer aldığı zaman aktif olur.
Cellpadding: CheckboxListt çerçevesi ile içindeki onay kutularının mesafelerini piksel olarak ayarlamamıza olanak sağlar.
Cellspacing: OnayKutuları arasındaki mesafeyi piksel olarak ayarlar.
DataMember: CheckBoxList onay kutusu listesini 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. Listelenmesini istediğmiz veri kaynağının adını belirtiriz.
DataTextField: Onay kutusu etiketleri için (DataSource) veri kaynağındaki tablodan listelenmesini istediğimiz alanı seçmemizi sağlar.
DataTextFieldFormatString: Onay kutusu etiketinin bçimlendirilmesini sağlar. Aynı zamanda string olarak biçimini bize okur.

    void Page_Load()
    {
       Response.Write(CheckBoxList1.DataTextFormatString.ToString());
    }
            
    <asp:CheckBoxList ID="CheckBoxList1" runat="server" DataTextFormatString="{0:d}" >
                <asp:ListItem Text="Kitap"></asp:ListItem>
                <asp:ListItem Text="Defter"></asp:ListItem>
    </asp:CheckBoxList>

DataValueField: Onay kutusu değerleri(value)  için için (DataSource) veri kaynağındaki tablodan  belirttiğimiz alanı onay kutusu listesine atar.
Items: CheckBoxList  elemanları koleksiyonunu belirtir.

<%@ Page Language="C#" AutoEventWireup="True" %>
<!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" >
<head id="Head1" runat="server">
    <title>CheckBox CheckedChanged Example</title>
<script runat="server">
    void Page_Load(Object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Response.Write(CheckBoxList1.Items[1].Text);
            CheckBoxList1.Items.Add("3. item");
            CheckBoxList1.Items.Add(new ListItem("4. item","4. item"));
            ListItem item5 = new ListItem();
            item5.Text = "5. item";
            item5.Value = "5. item";
            item5.Selected = true;
            CheckBoxList1.Items.Add(item5);
        }
    }
    void  CheckBoxList1_Clicked(Object sender, EventArgs e)
    {
         foreach(ListItem item in CheckBoxList1.Items)
         {
             if (item.Selected)
             {
                 Response.Write("Text : " +item.Text +  " Value: " +  item.Value + "  onaylandı. <br />");
             }
             else
             {
                 Response.Write("Text : " + item.Text + " Value: " + item.Value + "<br />");
             }
         }
    }
   </script>
</head>

<body>
   <form id="form1" runat="server">
             <asp:CheckBoxList ID="CheckBoxList1" runat="server" DataTextFormatString="{0:d}" AutoPostBack="true"  OnSelectedIndexChanged="CheckBoxList1_Clicked"  >
                <asp:ListItem Text="1. item" Value="1. item"></asp:ListItem>
                <asp:ListItem Text="2. item" Value="2. item"></asp:ListItem>
             </asp:CheckBoxList>
   </form>
</body>
</html>








RepeatColumns: CheckBoxList içindeki elemanların kaç sıra halinde sıralanacağını belirtir. Kolon,sütun sayısı ayarlanır.

RepeatDirection: CheckBoxList elemanlarını sıralama yönünü belirler. Horizontal (yatay) veya Vertical (dikey) değer alır. Varsayılan default değer Vertical yani dikey değerdir.
RepeatLayout: CheckBoxlist çerçevesinin biçimlendirilmesini sağlar. Table ve Flow değerlerinden birini alır. Varsayılan Table değeridir. Table değeri bir tablo sunar ve cellpadding ve cellspacing ayarları yapılır. Flow ile CheckBoxList  çerçevesiz,serbest bir biçim sunar. Tablo olmadığı için cellpadding ve cellspacing değerleri uygulamaz.
SelectedIndex: İşaretli olan onay kutusunun indeksini temsil eder.
SelectedItem: İşaretli olan onay kutusunun kendisini temsil eder.
TextAlign: Onay kutusunun yanındaki etiketin bulunacağı yönü belirtir. Left ve Right değerlerinden birini alır. Varsayılan Right değeridir. 

Metotlar
Databind: Bir DataSource'a(veri kaynağına) bağlanan CheckBoxList'e verilerin yüklenmesini sağlar.
OnSelectedIndexChanged: SelectedIndexChanged olayını üretir. SelectedIndexChanged olayı üzerinde düzenleme yapmamızı sağlar.

Olaylar:
SelectedIndexChanged: CheckBoxList içindeki onay kutularından birinde onay kutsu işaretlendiği veya kaldırıldığı zaman bu olay gerçekleşir.


CheckBox Kontrolu

CheckBox onay kutusu ile True veya False değerleri elde edilir. Kullanıcıya sunulanlar seçilerek True ile onaylanır veya boş bırakılarak False ile onaylanmaz. Birden fazla seçime olanak tanır. RadioButton gibi tek bir seçim sunmaz. 


Özellikleri
AutoPosBack: CheckBox kontrolunde onay kutusu işaretlendiği zaman veya kaldırıldığı zaman formu otomatik olarak gönderir. True değer aldığı zaman aktif olur.
Checked: CheckBox kontrolunun varsayılan olarak işaretli olup olmayacağını belirler.
Text:  CheckBox kontrolunun etiketine metin atanmasını veya yazılan metnin okunmasını sağlar.
TextAlign: CheckBox kontrolunde etiketin bulunacağı yönü belirtir. Varsayılan Right (Sağ) değeri alır.
Metotlar
OnCheckedChanged: CheckChanged olayını kullanabilmemiz için bu metot kullanılır.
Olaylar
CheckedChanged: Checkbox onay kutusu işaretlendği veya işareti kaldırıldığı zaman bu olay meydana gelir.
<%@ Page Language="C#" AutoEventWireup="True" %>
<!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" >
<head id="Head1" runat="server">
    <title>CheckBox CheckedChanged Example</title>
<script runat="server">
      void Check_Clicked(Object sender, EventArgs e)
      {
          if (CheckBox1.Checked)
          {
              Response.Write( CheckBox1.Text + "  seçildi. <br />");
          }
          if (CheckBox2.Checked)
          {
              Response.Write(CheckBox2.Text + "  seçildi. <br />");
          }
          if (CheckBox3.Checked)
          {
              Response.Write(CheckBox3.Text + "  seçildi. <br />");
          }
      }
   </script>
</head>
<body>
   <form id="form1" runat="server">
               <br />
               Bildiğiniz Programlama Dilleri <br />
               <asp:CheckBox ID="CheckBox1"  runat="server"  AutoPostBack="True"  Text="C#"  TextAlign="Left"  OnCheckedChanged="Check_Clicked" Checked="true"/><br />
               <asp:CheckBox id="CheckBox2" runat="server"  AutoPostBack="True"  Text="Basic"  TextAlign="Left"  OnCheckedChanged="Check_Clicked" /><br />
               <asp:CheckBox id="CheckBox3" runat="server"  AutoPostBack="True"  Text="Java"  TextAlign="Left"  OnCheckedChanged="Check_Clicked" /><br />
   </form>
</body>
</html>


Başka bir CheckBox Örneği ile alışveriş sepetindeki ürünlerin fiyatları toplanıyor ve AutoPostBack özelliği ile KDV hesabı yapılıyor.







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

<!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" >
<head id="Head1" runat="server">
    <title>CheckBox CheckedChanged Example</title>
<script runat="server">

    void CheckBox1_Clicked(Object sender, EventArgs e)
      {
          Message.Text = CalculateTotal(CheckBox1.Checked).ToString("c");
      }

      void Page_Load(Object sender, EventArgs e)
      {
         if(!IsPostBack)
         {
            Message.Text = CalculateTotal(false).ToString("c");
         }
      }

      double CalculateTotal(bool Taxable)
      {
         double Result = (90 + 220 + 80) * 1.41;
         if(Taxable)
         {
            Result += Result * 0.08;
         }
         return Result;
      }
   </script>
</head>

<body>
   <form id="form1" runat="server">
      <table border="1" cellpadding="5">
         <tr><th colspan="2">Alışveriş Sepeti</th></tr>
         <tr><td>Gigabyte Anakart</td><td>90$</td></tr>
         <tr><td>Intek İşlemci</td><td>220$</td></tr>
         <tr><td>Team Extrem Ram</td><td>80$</td></tr>
         <tr><td>dolar</td><td>1,410</td></tr>
         <tr><td><b>Toplam</b></td><td> <asp:Label id="Message" runat="server"/> </td></tr>
         <tr> <td colspan="2"> <asp:CheckBox ID="CheckBox1"  runat="server" AutoPostBack="True" Text="%8 KDV ekle" TextAlign="Right" OnCheckedChanged="CheckBox1_Clicked"/> </td> </tr>
      </table>
   </form>
</body>