Ana Sayfa » Ders Notları ve Örnekler » ASP.NET » Button Web Kontrolü

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)
    {
        if (!Page.IsPostBack) lbSonuc.Text = "Değer yok..."
    }
    void btnKare_Click(Object o, EventArgs e)
    {
        int Sayi = System.Convert.ToInt32(tbSayi.Text);
        in Sonuc = Sayi * Sayi;
        lbSonuc.Text = Sonuc.ToString();
    }
    void btnYarisi_Click(Object o, EventArgs e)
    {
        int Sayi = System.Convert.ToInt32(tbSayi.Text);
        int Sonuc = Sayi / 2;
        lbSonuc.Text = Sayi.ToString();
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Button Web Kontrolü</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:TextBox ID="tbSayi" runat="server" /><br />
    <asp:Button ID="btnKare" runat="server" Text="Karesini Bul" OnClick="btnKare_Click" />
    <asp:Button ID="btnYarisi" runat="server" Text="Yarisını Bul" OnClick="btnYarisi_Click" /><br />
    Sonuç : <asp:Label ID="lbSonuc" runat="server" />
    </form>
</body>
</html>

Button web kontrolü bir form verilerini sunucuya göndermek için kullanılacak bir SUBMIT tuşu görüntüler. Ancak bu tuşun ASP.NET'e özel bir çok özellik, metot ve olayı bulunmaktadır. Bunlardan kullanım için en önemli olanı CLICK olayıdır. Her ASP.NET Button web kontrolü kendisine ait bir tıklama olayını çalıştırabilir. Bu şekilde tuş tıklandığında tıklama olayını karşılayan özel bir yordam (prosedür) çalıştırabiliriz.

Tuş tıklandığında çalıştırılacak olan olayın yordam adı tuşun "ONCLICK" özelliğinde belirtilir. Yordam adını seçmekte serbestiz. Ancak çoğunlukla kullanılan yordamlara "tiklama" gibi isimler vermektense tuşun ID özelliğinin değeri, bir alt çizgi ve "Click" ifadelerinin birleşiminden bir isim üretmektir.

Örneğin ID özelliği değeri "btnKare" olan örneğimizdeki tuşun click olayının ismini "btnKare_Click" olarak belirledik.

    <asp:Button ID="btnKare" runat="server" Text="Karesini Bul" OnClick="btnKare_Click" />

Tıklama olayı için belirtilen isme sahip bir yordamı sunucu taraflı kodların çalıştırılıacağı bölüme yazarız veya Visual Studio gibi programlarda "Design" görünümündeyken tuşu çift tıklayarak yordamın program tarafından oluşturulmasını ve isimlendirilmesini sağlayabiliriz.

Tuş tıklandığında çalıştırılacak yordam aşağıdaki gibi tanımlanır.

    void btnKare_Click(Object o, EventArgs e)
    {
        .
        .
        .
    }

Yordamın içine (noktaların bulunduğu yere) tuş tıklandığnda çalıştıralcak kodlar yazılır.

    void btnKare_Click(Object o, EventArgs e)
    {
        int Sayi = System.Convert.ToInt32(tbSayi.Text);
        in Sonuc = Sayi * Sayi;
        lbSonuc.Text = Sonuc.ToString();
    }

Örneğimizde, tbSayi isimli TextBox kontrolüne yazılan sayı tamsayıla çevriliyor (System.Convert.ToInt32 ile) ve Sayi isimli bir tamsayı değişkene atanıyor. Daha sonra Sayi kendisi ile çarpılarak karesi hesaplanıp yine tamsayı türünden Sonuc isimli bir değişkene atanıyor. Son olarak lbSonuc isimli Label kontrolünün Text özelliğine sonuç ToString metodu kullanılarak String türüne çevrilip atanıyor.

C# programlama dili çok katı bir tip denetimine sahiptir. TextBox vb. kontrollerden gelen değerler ise String türündedir. Bu nedenle bu değerleri sayı olarak kullanabilmek için tip katılığından dolayı sayıya çevirmek zorunda kalırız. Bunun için de en çok System.Convert isim alanında bulunan ToInt32, ToDouble vb. statik metodları kullanırız.

        int Sayi = System.Convert.ToInt32(tbSayi.Text);

Aynı şekilde bir sayı türünden veriyi de String türünden bir değere atarken (Label kontrolünün Text özelliği String türündendir= de sayıyı String'e çevirmemiz gerekir. Ancak bu çevrim için System.Convert sınıfında bulunan ToString metodu yerine tüm sınıflarda bulunan ToString metodunu kullandık.

        lbSonuc.Text = Sonuc.ToString();

ToString metodu tüm sınıflarda bulunduğu için (C#, VB.NET gibi .NET programlama dillerinde her veri türü bir sınıf olduğundan) bunların String türünden değerini elde etmek için ToString metodunu tüm sınıflarda kullanabiliriz. Ancak bazı sınıflarda bir değer yerine sınıfın tipini bildiren bir String değeri alırız.

İletişim : hazirsite@gmail.com