جلسه ششم
Master Page
دلایل استفاده از Master Page
نحوه ایجاد یک Master Page
ایجاد یک صفحه aspx که از Master Page استفاده می کند .
مفهوم ContentPlaceHolder و Content
دسترسی به MasterPage در داخل یک صفحه
دسترسی به کنترل های Master Page در یک صفحه
مشخص کردن محتوای پیش فرض در داخل Master Page
انتخاب یک Mater Page برای صفحه با استفاده از کد نویسی
دلایل استفاده ازMaster Page
Master page ها برای ایجاد یک قالب کلی استفاده می شوند بطوریکه دیگر صفحات بتوانند از این قالب استفاده کنند .
نحوه ایجاد یک Master Page
از دیالوگ Add new item گزینه master page را انتخاب کنید

قالب master page را انتخاب کنید :
ایجاد یک صفحه aspx که از Master Page استفاده می کند .
با انتخاب گزینه Add new item دیالوگ Add new item را را اجرا کنید . در داخل این دیالوگ یک چک باکس به نام Select master page وجود دارد که برای اینکه صفحه جدید از یک master page استفاده کند ، می بایست چک خورده باشد .
با انتخاب این گزینه و ok کردن ، دیالوگ انتخاب یک master page باز می شود :
با ok کردن این دیالوگ صفحه جدید ما در حالیکه از یک master page استفاده می کند ایجاد می شود
اگر به source صفحه جدید نگاه کنید نحوه تعیین فایل maser page برای این صفحه را ملاحظه خواهید کرد:
<%@ Page Language="C#" MasterPageFile="~/MasterPageIE.master" %>
صفت MasterPageFile آدرس فایل master page را در خود دارد .
مفهوم ContentPlaceHolder و Content
دسترسی به شی MasterPage در داخل یک صفحه
شی Page یک متغییر عضو دارد به نام Master شما می توانید با استفاده از این متغییر در داخل کد Page به کنترل ها و متدهای موجود در Master Page دسترسی پیدا کنید .
دسترسی به کنترل های موجود درMaster Page درداخل کد یک صفحه
برای دسترسی به کنترل های موجود در Master Page از متد Master.FindControl استفاده می کنیم . این متد ID کنترل را به عنوان پارامتر می گیرد .
Label1.Text = (Master.FindControl("Label1") as Label).Text;
مشخص کردن محتوای پیش فرض در داخل Master Page
شما می توانید که در کنترل ContentPlaceHolder در داخل Master Page محتوایی قرار دهید که این محتوای پیش فرض کنترل های Content در داخل صفحات می شود .
در صورتیکه شما یک کنترل Content را برای یک ContentPlaceHolderمشخص نکنید از این مقدار پیش فرض استفاده خواهد شد
انتخاب یک Mater Page برای صفحه با استفاده از کد نویسی
برای اینکار می بایست که آدرس Master Page را در Page.MasterPageFile قرار دهید اما این کار را می بایست حتما در رویداد Page_PreInit صفحه انجام دهید .
protected void Page_PreInit(object sender, EventArgs e)
{
Page.MasterPageFile = "~/MyMasterPage.master";
}