Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Alper Çiftçi
Alper Çiftçi
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
1 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: “default.aspx” “ucont” durumundayiz. ekleyelim. erisebilmek kontrol kullanarak kullanici loadcontrol metodunu myusercontrol olusturalim property submit textbox ASP.NET Alper Çiftçi
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : ASP.NET
Yayınlanma Tarihi : 4.7.2005
Okunma Sayısı : 25674
Yorum Sayısı : 1     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 19.4.2024
Turhal Temizer
Mac OS/X Removing CUDA 19.4.2024
Burak Selim Şenyurt
Kurumsal Yazılımcının Oyun Geliştirme ile İmtihanı 19.4.2024
Burak Selim Şenyurt
Matematik ve Oyun Programlama - Missile Command - Final 19.4.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
ASP.NET 2.0 da Çalışma Zamanında Eklenen Kullanıcı Kontrolleri
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Kullanıcı kontrollerini web formumuza programsal olarak nasıl yükleceğimizi biliyoruz.(Bilmiyorsak da sorun değil, göreceğiz) Peki sayfayı bir şekilde submit ettikten sonra çalışma zamanında eklenmiş olan bu kullanıcı kontrolünün içerdiği kontrollere nasıl erişeceğiz? Bu makalede bu sorunun cevabını bulmaya çalışacağız.

İlk olarak “Default.aspx” isimli formumuzu oluşturalım ve içine bir panel, button, ve label ekleyelim. Daha sonra “MyUserControl.ascx” adlı kullanıcı kontrolünü oluşturalım ve bunun içine de bir label ve textbox ekleyelim. Daha sonra “Default.aspx” sayfasının html kodunun başına (ikinci satıra) aşağıdaki satırı ekleyelim.

<%@ Register  TagPrefix="Acme" TagName="MyUserControl1" src="~/MyUserControl.ascx" %>
Bunu eklemezsek “Deafult.aspx.cs” içinde MyUserControl sınıfına ulaşamayız. Bu önemli noktayı belirttikten sonra “MyUserControl.ascx.cs” dosyasını açalım ve daha önce eklediğimiz sayi adlı textbox ın içeriğine erişebilmek için Sayi adlı bir property oluşturalım.

public partial class MyUserControl : System.Web.UI.UserControl
{
    public string Sayi
    {
    set
    {
    sayi.Text = value;
    }
    get
    {
    return sayi.Text;
    }
    }

}
Aslında ASP.NET 1.1 de textbox ın protected olan özelliğini public yaparak içeriğine erişebiliyorduk. Fakat 2.0 da artık generated kodu göremediğimiz için bu iş için bir property yazmak durumundayız. (Görebilen varsa bildirsin) Bu durum kullanıcı kontrolünde çok fazla kontrol olduğunda ağır bir yük getirse de nesneye dayalı programlama felsefesine aykırı davranmamak açısından anlamlıdır.

Şimdi de Default.aspx.cs dosyamıza dönelim ve Page_Load metodunun içini aşağıdaki şekilde dolduralım.

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
    MyUserControl ucont = new MyUserControl();
    ucont = (MyUserControl)LoadControl("MyUserControl.ascx");
    Panel1.Controls.Add(ucont);
    ucont.ID = "ucont";
    }
}
Burada ilk olarak MyUserControl sınıfından bir nesne oluşturduk ve buna LoadControl metodunu kullanarak kullanıcı kontrolümüzü yükledik. Daha sonra bunu Panel1’e kontrol olarak ekledik. Bu durumda bu kullanıcı kontrolü panelin içinde görünecektir. Ve son olarak ID sini “ucont” olarak değiştirdik. Bunu daha sonra bu panele kolayca erişebilmek yaptık.

En önemli kısıma geldik. Şimdi de Submit butonuna tıklandığında çalışacak metodu (event handler) aşağıdaki şekilde yazalım.

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
    MyUserControl ucont = new MyUserControl();
    ucont = (MyUserControl)LoadControl("MyUserControl.ascx");
    Panel1.Controls.Add(ucont);
    ucont.ID = "ucont";
    }
    protected void SubmitButton_Click(object sender, EventArgs e)
    {
    MyUserControl myuc = new MyUserControl();
    myuc = (MyUserControl)Panel1.FindControl("ucont");
    Output.Text = myuc.Sayi; 
    }
}
Burada ilk olarak yine bir MyUserControl nesnesi oluşturduk. Ve buna Panel1’in FindControl metodunu kullanarak ve bu metoda parametre olarak daha önce atamış olduğumuz ID değerini girerek gelen kontrolü atadık. Burada daha önce de yaptığımız gibi tip dönüşümü(casting) yapmak durumundayız. Çünkü LoadControl ve FindControl metodları Control nesnesi döndürmektedir. “ucont” ve “myuc” nesnelerini oluştururken de bizim oluşturduğumuz MyUserControl sınıfını kullandık. Burada Control veya UserControl sınıflarını da kullanabilirdik fakat bu sefer propertylerine erişebilmek için yine tip dönüşümü yapmamız gerekecekti. Kolaylık olması açısından kendi sınıfımızı kullanmamız daha mantıklıdır.

Evet artık oluşturduğumuz bu formu çalıştırıp bir sayı değeri girdiğimizde butonun altındaki labelda kullanıcı kontrolündeki alana yazdığımız değer görünecektir.


Anlatılan uygulamayı indirmek için tıklayın.
Makale:
ASP.NET 2.0 da Çalışma Zamanında Eklenen Kullanıcı Kontrolleri ASP.NET Alper Çiftçi
  • Yazılan Yorumlar
  • Yorum Yaz
ARA
8
2006
TextBox ysirkecili = this.Wuc1.FindControl(TextBox1) as TextBox Label1.Text = ysirkecili.Text
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor