Asp.NET – Master Page Kullanımı
Bir önceki sayfada Master Page sayfasının ne işe yaradığını ve nasıl kullanıldığına değindik.Şimdi ise Master Page sayfasındaki bir nesneye, içerik sayfasından ulaşıp, o nesneye istediğimiz çalışmayı yapmayı göstereceğim.
Şimdi bir Master Page sayfası oluşturalım.Ben bu sayfaya MasterPage2.master adını koyuyorum.
---MasterPage2.master---</pre> <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage2.master.cs" Inherits="MasterPage2" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </div> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </form> </body> </html> <pre>
Gördüğünüz gibi Master Page imizde bir Label nesnesi mevcut.Ben istesem Masterpage2.master.cs sayfasından bu Label nesnesinin istediğim özelliğiyle, kodlar aracılığıyla oynarım.
Ancak MasterPage2.master sayfasından türeyen bir web sayfasının .cs sayfasından, MasterPage2.master sayfasındaki Label nesnesine ulaşamıyoruz.
Ben sayfasına göre, MasterPage2.master daki bu nesnenin özelliğini değiştirmek istiyor olabilirim.
Bu sorunların çözümü aşağıdaki şekildedir.
//MasterPage2.master sayfasından türeyen bir sayfa olarak varsayalım..
//Master sayfada olan nesnenin tipinden bir referans oluşturmalıyız.Master.FindControl() koduyla Master sayfadaki kontrolün idsini veriyoruz.
Label lblSayfaAdi = (Label)Master.FindControl("lblSayfaAdi");
//Oluşturduğumuz referansa,Master.FindControl() dan Control tipinden gelen nesneyi Label tipine Cast edip veriyoruz.
lblSayfaAdi.Text = "Deneme Sayfasındasınız";
//Ele geçirdiğimiz nesne üzerinden istediğimiz çalışmayı yapıyoruz.
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar..

Öncelikle merhaba. Master page.master.cs kısmına kod yazdığımda siteye ulaşılamıyor hatası alıyorum.. Sebebi nedir?