Bir kontrolü programatik olarak oluşturmak ve sayfaya eklemek mümkündür. Oluşturduğumuz dinamik kontrolleri Panel yada PlaceHolder’ı kontrollerine eklememiz gerekmektedir. Oluşan kontrolü bir panele eklediğimiz zaman, kontrol panelin en altında oluşacaktır. Oluşturduğumuz kontrollerin istediğiniz bir yerde görünmesi için PlaceHolder kontrolüne eklememiz gerekmektedir.
Dinamik bir kontrol oluşturulduğu zaman bu kontrol bir daha ki postback`e kadar var olacaktır. Oluşturulan bir kontrolün bir çok defa oluşmasını istiyorsak kontrolümüzü Page_Load veya Page_Init olayının içinde oluşturmamız gerekmektedir. Bir buton kontrolünün dinamik olarak oluşturulması aşağıdaki gibidir:
|
|
Dinamik olarak oluşturulan bir kontrole erişmek için FindControl() methodunu kullanabiliriz. Tabi bunun için oluşturduğumuz kontrolle ID vermeyi unutmamamız gerekmektedir.
|
|
Dinamik olarak eklediğiniz kontrollere olayda ekleyebilirsiniz. Şayet oluşturduğunuz kontrole olay eklemek isterseniz, delegate yardımıyla bunu yapabilirsiniz.
|
|
önceki yazı jQuery ile taşınabilir nesneler yapma |
sonraki yazı C# ve Javascript Kardeşliği |
http://www.kodaman.org/yazi/asp-net-dinamik-event-handler
bu yazımda ben de değinmiştim. biraz değişik kullanımı var incelemek isteyenler bakabilir.
sayfa her seferinde yeniden oluştuğunda
dinamik oluşan alanlarınızda ki verileri kaybedersiniz, bunu unutmayın.
@Frosten;
yazı içinde bahsettim;
"Dinamik bir kontrol oluşturulduğu zaman bu kontrol bir daha ki postback`e kadar var olacaktır. Oluşturulan bir kontrolün bir çok defa oluşmasını istiyorsak kontrolümüzü Page_Load veya Page_Init olayının içinde oluşturmamız gerekmektedir."
yok onun için tek çözüm dinamik contentplace holder kullanmak gerekiyo, datayı çekemiyosun çok problem oluyo. bir şekilde bütün nesneleri ve değerlerini viewstate e yazmak gerekir yada başka bir şekilde tutmak gerekir. bunun için google da dynamic content place holder diye aratırsanız, özel bi kontrol dinamik nesneleri istediğin gibi kullanabilmek için geliştirilmiş çok işe yarıyor.3parti bi sınıf microsoft a ait degil yani.
arkadaşlar ben visual basic 2008 de
page load kısmına
For i As Integer = 0 To count - 1 n = New TextBox() n.ID = "textbox1" + i.ToString
PlaceHolder1.Controls.Add(n)
next
yazarak dinamik textboxlar ürettim
kulanıcını girdiği değerleri geri nasıl alabilirim yardım ederseniz
pillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.
Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.