ASP.NET Custom Server Control

ASP.Net ile web uygulamalarımız geliştirirken kimi zaman kontrollerin çalışma şekillerini
değiştirmek isteyebiliriz. Kontrollü biraz daha özelleştirmek isteyebiliriz. Bu işlemi kontrolü sayfamızın üstüne attıktan sonra sayfamızın koduna eklemeler yaparak gerçekleştirebiliriz. Ama peki başka bir sayfada daha aynı kontrolü kullanacaksak ne yapacağız. Böyle bir durumda kodları ilk sayfamızdan diğerine kopyalamamız gerekecek. Bu sorunu da böyle hallettikten sonra kontrolümüzü bir çok sayfada kullandık. Peki kontrolümüzün bir özelliğinde değişiklik yapacaksak ne olacak? Eklediğimiz bütün kodları teker teker değiştireceğiz. Daha sonra iş arkadaşınız kendi uygulamasında aynı özelleşmiş kontrolü kullanmak istediğinde ona kontrolün arkasına yazdığımız kodları göndermemiz
gerekecek. İşte bu ve buna benzer sorunlardan kurtulmak için kendi ASP.Net Server Kontrollerimizi yazarız.

Bu makalede uygularımızda kullanabilmek için Sayısal Textbox kontrolü oluşturucağım. Sayısal karakterlerin tesbitinde javascript kullanacağım için, javascript bilginiz olması bir avantaj olacaktır. Amacımız custom kontrolleri oluşturmayı anlamak olduğu için çok ayrıntılı bir kontrol yazmayacağım, ama siz bu başlangıcın üzerine eklemeler yaparak istediğiniz hale getirebilirsiniz. Bu konuda karşınıza çıkacak sorunlarda yardımcı olmaya çalışırım.
Continue…

ASP.NET Control Bug

Son zamanlar da hep karşılaştığım sorunlardan bahsediyorum ama bu kez bahsedeceğim sorunun kaynağı ben değilim 🙂 Microsoft’ta kabul etmiş bug olduğunu. 

Asp.Net kontrolleri ile çalışırken, bir ASP.Net kontrolünden kendi kontrolümü türettim ve daha sonra sayfama eklemeye çalıştığımda

The type name “X” does not exist in the type “X”

tarzında bir hata alıyordum. Yanlış gözüken hiçbir şey yoktu ama hata veriyordu. Daha sonra – google sağolsun – aynı sorunla karşılaşan ve bunu bildiren birinin daha olduğunu öğrendim. Sorunun nedeni ise bir bug’mış. Namespace ile sınıf ismi aynı olduğu zaman veriyormuş bu hatayı, tam da benim yaptığım şey. Microsoft’tan gelen cevapta ise bunun bug olduğunu kabul etmişler ama ASP.NET 4’te bunu düzeltmeyeceklerini bildirmişler. Nedeni ise sorunun basit bir çözümü olmasıymış. Fazlasına burdan ulaşabilirsiniz.