3 Temmuz 2011 Pazar

Sayfa Üzerinden MasterPage Değişikliği Yapmak

MasterPage kısaca, web uygulamalarında tüm web formların ortak özelliğini tutan ve onları sayfalarda gösteren bir mekanizmadır. İsterse 10 sayfamız olsun, tüm sayfalarda görünmesini istediğimiz bir alan varsa (genellikle header,footer ve sidemenu'ler olur) onları MasterPage ile üretip, tüm sayfalara uygularız. Peki, onlarca sayfadan sadece bir sayfa, bu master page'de belli bir alanı göstermek istetmezse?

Örneğin, MasterPage'imizde footer'ınde yazılan text'i sayfanın birinde değiştirelim. Bunun için yapmamız gereken şey, MasterPage'in code behind kısmında footer alanındaki Label'ın text'ini dışarıya setlemek olmak. Bunun için property yazmamız gerekecek. Yazacağımız property şu şekilde olmalı;


    public string FooterText
    {
        get { return Label1.Text; }
        set { Label1.Text = value; }
    }

Gördüğünüz gibi, Label'ın text'ini set bloğu içinde değiştirebilirtiyoruz. Bulunduğumuz sayfada da, MasterPage'in footer kısmındaki yazıyı şu şekilde değiştiririz;

((Main)Master).FooterText = "Bu MasterPage Kodla Değiştirildi";

Burada bilmemiz gereken, herhangi bir sayfa üzerinde, Master diyerek LifeCycle sırasında üretilen MasterPage'in nesnesine ulaşırız. Buradan da az önce yazdığımız property'i değiştirdiğimiz zaman, artık bu sayfada masterpage'deki Footer kısmındaki text'i değiştirmiş oluruz. Dolayısıyla tüm sayfalarda MasterPage normal gözükürken, bu sayfamızda, Footer'da farklı bir yazı yazmış oldu. Farklı değişiklikler için de yine aynı yöntemle, değiştirmek istediğimiz kısımla ilgili property yazıp, onu dışarıya setlemeliyiz. Daha sonra da hangi sayfa üzerindeki MasterPage'i değiştirmek istersek, o sayfadan, MasterPage içerisine yazdığımız property'i cağırıp, gerekli değişiklikleri yaparız.


0 yorum: