Asp.Net MasterPage İçindeki Kontrole Ulaşma, Style Ekleme

Merhaba arkadaşlar. Asp.Net sayfalarında sıklıkla masterpage sayfaları kullanıyoruz. Masterpage sayfasında asp.net kontrollerine yada html kontrollerine ulaşıp değişiklik

yapmak gerekebiliyor. Normalde asp.net sayfasında .net kontrollerine ulaşmak çok kolay, fakat bu webform'dan masterpage sayfasına ulaşma olunca iş biraz değişiyor. 


Örneğin bende masterpage'de iki label nesnesi var (lAnaBaslik ve lAciklama) bunda değişiklik yapacağım ve bir de bir div elemanında background resmini değiştireceğim (farklı sayfalarda farklı background vermemiz istenebilir).

Bu kodlar webform sayfasına yazılacak, burda aktif olan master sayfasından lAnaBaslik ve lAciklama id'sine sahip labelleri bulacak (FindControl ile),

label özellikli değişkene atayacak. Sonrasında bir label kullanır gibi kullanıyoruz.

 Label anabaslik = Master.FindControl("lAnaBaslik") as Label;
 Label aciklama = Master.FindControl("lAciklama") as Label;

 anabaslik.Text = "Ana Başlık Bilgisi";
 aciklama.Text= "Açıklama Bilgisi; 
Yukarıda bahsettiğim asp.net kontrollerinden label nesnesine ulaşma işlemi, aynı şekilde diğer asp.net nesnelerine bu şekilde ulaşabiliriz. Ama html etiketine ulaşmak için ise küçük bir değişiklik yapmamız gerekecek. Ben şu şekilde bir div kullanıyorum
<div class="jumbotron jumbotron-fluid" runat="server"  id="backid" style="background-size:cover"></div>
Dikkat ederseniz div nesnesine runat="server" ve id="backid" eklenmiş. Bunu yapmak zorundayız. Aşağıdaki kodlar ile de bu nesneye ulaşıp style eklemesi yapıyoruz

HtmlControl back = Master.FindControl("backid") as HtmlControl;
back.Style.Add("background-image", "url('/img/bg_copcatan.png')");

Ben son çalışmamda her sayfada başka background olsun istendiği için bu şekilde hallettim. İşin mantığı asp.net'te işinize çok yarayacak.

İyi çalışmalar.



Etiketler
MasterPage Namespace Findcontrol HtmlControl
Mesaj Yaz