Şu sıralar özelleştirilmiş kontroller yaratmakla uğraşıyorum. Bu konu dahilinde bir kaç şey paylaşma gereği duydum. ASP.NET ile özelleştirilmiş kontroller geliştirmek için .NET Framework’ü bize bir çok sınıf ve metod sunuyor. Bundan bahsetmeye gerek yok sanırım. Peki bu sınıfları ve metodları en doğru şekilde nasıl kullanabiliriz?
Özelleştirilmiş bir web kontrolü yaparken, WebControl ve Control sınıflarından türetiyoruz kendi kontrolümüzü. Çünkü default olarak gelen yapılar bunlar. Ancak bazı işlerimizi kolaylaştırmak adına başka sınıflardan da yararlanabiliriz.Bu kısma daha sonra tekrardan değineceğim.
Özelleştirmiş olduğumuz kendi web kontrolümüzü yarattıktan sonra, bu web kontrolümüze,içinde kullanacağımız diğer kontrollerimizi ekleriz; yani genellikle bu şekilde bir yaklaşım olur. Control ağacına, Controls.Add(Control c) şeklinde ekleyeceğimiz kontroller ile kendi özelleştirilmiş kontrolümüze bu diğer kontrolleri eklemiş oluruz. Bu işlemi CreateChildControls() methodunu override ederek yapmak en doğru yaklaşım olacaktır. ASP.NET sayfası çalıştığı zaman belli metodlar belli bir sıra ile çalışır. CreateChildControls()’da bu sırada yer almaktadır ve çalışması gerektiği zaman çalışır. Bu zamanı .NET Framework’ü bildiği için bu görevi tamamen onun üzerine yıkmak, controllerin durumları ve ViewState için en doğru yaklaşım olacaktır.
protected override void CreateChildControls(){
Controls.Clear(); //Öncesinde control ağacımızı temizlemekte fayda var.
……… //Diğer kontrolleri yaratabiliriz…
}