• Şu anda 0/5 Yıldız.
  • 1
  • 2
  • 3
  • 4
  • 5

ASP.NET'de Kullanıcı Kontrolü Oluşturma

Gönderen umutuygar18.11.2007 00:36:00

 

kullaniciKontrolOrnegi Bu serinin bir önceki yazısında ASP.NET ile kullanıcı kontrollerine genel bir bakış yaptım ve kullanıcı kontrollerinin ne olduğunu, nerelerde kullanıldığını örnekleri ile beraber incelemiştim. Serinin bu ikinci yazısında kullanıcı kontrollerinin nasıl oluşturulacağını uygulaması ile birlikte inceleyeceğim.

Kullanıcı kontrollerinin tanıtımsal yazım kuralları, ASP.NET web sayfası hazırlarken kullandığımız yazım kurallarına çok benzerler. Ana fark @ Page direktifi yerine @ Control komutu kullanması ve kullanıcı kontrollerinin içeriğinide html,form ve body elementlerinin olmayışıdır.

Bir Kullanıcı Kontrolü Oluşturmak İçin

1. Yeni bir dosya oluşturun ve uzantısını .ascx olarak kaydedin. Ya da daha kolayı VWD 2005 Express Edition içerisinden oluşturduğunuz yeni web sayfasına yeni bir öğe ekleyin ve diyalog kutusundan "Web User Controls" seçerek bir isim verin.

Not: Kullanıcı kontrollerini web sitenizin App_Code dizinine koyamazsınız. Aksi takdirde ilgili sayfa çalışırken "parse" hatası oluştur.

2. Sayfanın en üstünde bir @ Control direktifi oluşturun ve kullanacağınız dili (eğer kullanacaksanız) belirleyin.

3. Kullanıcı kontrolünün görüntülemesini istediğiniz kontrolleri ekleyin.

4. Kontrollerin olayları, veri kaynağından veri okuma ya da yazma gibi kullanıcı kontrolünüzün gerçekleştirmesini istediğiniz görevler için gerekli kodları yazın.

5. Kullanıcı kontrolü ve ev sahibi sayfa arasında bilgi paylaşımı yapmak istiyorsanız özellikleri kullanıcı kontrolünde oluşturun. Özellikleri, herhangibir sınıf yaratırken yaptığınız gibi public olarak da ayarlayabilirsiniz, get ve set ifadelerinden de yararlanabilirsiniz.

Örnek

Aşağıdaki örnek eksiksiz bir kullanıcı kontrolünü gösteriyor. Bu kullanıcı kontrolü, yerleştirildiği ev sahibi sayfada bir adet "sadece okunabilir" metin kutusu ve iki adet üzerinde yukarı ve aşağı ok işaretleri bulunan buton gösterir. Kullanıcı bu yukarı ve aşağı butonlarını kullanarak metin kutusu içindeki rakamı artırıp azaltabilir. Buradaki kullanıcı kontrolünün, ev sahibi sayfada kullanılabilecek üç adet özelliği bulunmaktadır; MinDeger, MaxDeger ve GecerliSayi.

<%@ Control Language="C#" ClassName="sayiArtirAzalt" %>

<script runat="server">
    private int m_minDeger;
    private int m_maxDeger = 100;
    private int m_gecerliSayi = 0;

    public int MinDeger
    {
        get
        {
            return m_minDeger;
        }
        set
        {
            if (value >= this.MaxDeger)
            {
                throw new Exception("Minimum sayı maksimum sayıdan küçük olmalıdır");
            }
            else
            {
                m_minDeger = value;
            }
        }
    }

    public int MaxDeger
    {
        get
        {
            return m_maxDeger;
        }
        set
        {
            if (value <= this.MinDeger)
            {
                throw new Exception("Maksimum sayı, minumum sayıdan büyük olmalıdır");
            }
            else
            {
                m_maxDeger = value;
            }
        }
    }

    public int GecerliSayi
    {
        get
        {
            return m_gecerliSayi;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            m_gecerliSayi = Int16.Parse(ViewState["gecerliSayi"].ToString());
        }
        else
        {
            m_gecerliSayi = this.MinDeger;
        }
        SayiGoster();
    }

    protected void SayiGoster()
    {
        sayiTextBox.Text = this.GecerliSayi.ToString();
        ViewState["gecerliSayi"] = this.GecerliSayi.ToString();
    }

    protected void yukariButton_Click(object sender, EventArgs e)
    {
        if (m_gecerliSayi == this.MaxDeger)
        {
            m_gecerliSayi = this.MinDeger;
        }
        else
        {
            m_gecerliSayi += 1;
        }
        SayiGoster();
    }

    protected void asagiButton_Click(object sender, EventArgs e)
    {
        if (m_gecerliSayi == this.MinDeger)
        {
            m_gecerliSayi = this.MaxDeger;
        }
        else
        {
            m_gecerliSayi -= 1;
        }
        SayiGoster();
    }
</script>

<asp:TextBox ID="sayiTextBox" runat="server"
    ReadOnly="True" Width="32px" Enabled="False" />
<asp:Button Font-Bold="True" ID="yukariButton" runat="server" 
    Text="^" OnClick="yukariButton_Click" />
<asp:Button Font-Bold="True" ID="asagiButton" runat="server"
    Text="v" OnClick="asagiButton_Click" />

Örnek kullanıcı kontrolü, MinDeger, MaxDeger ve GecerliSayi adında üç adet özelliği tanımlamak için kod içerir. Kullanıcı kontrollerindeki özellikler public olmak zorundadır. Bu örnekte özelliklere erişim için get ve set özellikleri kullanıldı. Ancak siz bunun yerine basitçe public olarak da yaratabilirsiniz.

Örnek Proje(C#) İndir: userControlOlustur1.rar (1,79 kb)

Rar Şifre: www.umutuygar.com

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler: , ,


İlişkili yazılar

Yorum

12.05.2008 03:03:43

dsf

sdfdssdfcdasdsa

dsf jm

12.05.2008 03:03:57

dsf

safdafa

dsf jm

12.05.2008 03:04:16

dsf

yaw ajax mı kullandınız bu sayfada post olmadan eklenıyor

dsf jm

Yorum ekle


(Gravatar simgesini gösterecek)  

  Country flag





Önizleme

28.08.2008 20:21:50







Tüm hakları saklıdır. Copyright Umut Uygar @2007

Son yorumlar

Son yazılar


Takvim

<<  Ağustos 2008  >>
PaSaÇaPeCuCuPa
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

Gönderileri Büyük Takvimde Gör

Sayfalar

    Oturum Aç
    Pardus... Özgürlük İçin...