نحوه ایجاد(تو در تو) Nested Master Page در Asp.Net

پنجشنبه 3 اردیبهشت 1394

در این مقاله نحوه ایجاد Nested Master Page را در Asp.Net شرح خواهیم داد

نحوه ایجاد(تو در تو) Nested Master Page در Asp.Net

اگر یک وب سایت بزرگ را بخواهیم طراحی کنیم . ممکن است به چندین Master Page احتیاج داشته باشیم .به عنوان مثال ممکن است ما بخواهیم یک Master Page ایجاد کنیم که بر روی همه محتوای سایت اعمال شود , به علاوه ما می خواهیم چند قسمت از سایت را طراحی کنیم که علاوه بر Master Page از قسمتهای دیگری نیز ارث بری کند . ما از Nested Master Page در Visual Web Developer یا visual studio 2005 نمی توانیم استفاده کنیم .اگر ما به Nested Master Page احتیاج داریم , پس باید داخل تگهای مورد نظر تو در تو Nested Master Page مورد نظر را ایجاد کنیم .

به عنوان مثال در ادامه ما یک Master Page با نام "Site-Main.master" ایجاد کرده ایم که لوگوی سایت را نمایش می دهد و شامل یک قسمت می باشد .همچنین شامل لیست منو میباشد .

 

<%@ Master Language="VB" CodeFile="Site_Main.master.vb" Inherits="MasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head id="Head1" runat="server">
    <style type="text/css">
        html
        {

            background-color:Silver;
            font:14px Georgia,Serif;
        }
        .content
        {
            width:700px;
            margin:auto;
            border-style:solid;
            background-color:white;
            padding:10px;
        }
        .tabstrip
        {
            padding:3px;
            border-top:solid 1px black;
            border-bottom:solid 1px black;
        }
        .tabstrip a
        {
            font:14px Arial;
            color:Fuchsia;
            text-decoration:none;
        }
        .column
        {
            float:left;
            padding:10px;
            border-right:solid 1px black;
        }
        .rightColumn
        {
            float:left;
            padding:10px;
        }
        .footer
        {
            background-color:Lime;
            border:3px dotted red;
            text-align:center;
        }
        .clear
        {
            clear:both;
        }
    </style>
    <title>Website Main Master Page</title>
</head>
<body>
    <form id="form1" runat="server">

    <div class="content">
        <asp:Image
            id="imgLogo"
            ImageUrl="~/adds/CSSiteLogo.gif"
            AlternateText="Logo"
            Runat="server" />

        <div class="tabstrip">
        <asp:HyperLink
            id="lnkProducts"
            Text="HOME"
            NavigateUrl="~/Column1_Con_Home.aspx"
            Runat="server" />
        &nbsp;|&nbsp;
        <asp:HyperLink
            id="lnkServices"
            Text="FORUM"
            NavigateUrl="~/Column2_Con_About.aspx"
            Runat="server" />
        </div>

        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>

        <br class="clear" />
        <br />
        <br />
        <div class="footer">
        Copyright &copy; 2010 by CompanyName
        </div>

    </div>
    </form>
</body>
</html>

در مثال بالا دو Nested Master Page با نام Column1.master و Column2.master ایجاد کرده ایم , هر دو خاصیت های Master Page را دارد و به Site.master اشاره می کنند .

Column1.Master

<%@ Master Language="VB" MasterPageFile="~/Site_Main.master" AutoEventWireup="false"CodeFile="Column1.master.vb" Inherits="Column1" %>

<asp:Content
    id="Content1"
    ContentPlaceHolderID="ContentPlaceHolder1"
    Runat="server">
    <div class="column">
        <asp:ContentPlaceHolder
            id="ContentPlaceHolder1"
            Runat="server" />
    </div>
    <div class="column">
        <asp:ContentPlaceHolder
            id="ContentPlaceHolder2"
            Runat="server" />
    </div>
    <div class="rightColumn">
        <asp:ContentPlaceHolder
            id="ContentPlaceHolder3"
            Runat="server" />
    </div>
</asp:Content>

Column2.Master

<%@ Master Language="VB" MasterPageFile="~/Site_Main.master" AutoEventWireup="false"CodeFile="Column2.master.vb" Inherits="Column2" %>

<asp:Content
    id="Content1"
    ContentPlaceHolderID="ContentPlaceHolder1"
    Runat="server">
    <div class="column">
        <asp:ContentPlaceHolder
            id="ContentPlaceHolder1"
            Runat="server" />
    </div>
    <div class="rightColumn">
        <asp:ContentPlaceHolder
            id="ContentPlaceHolder2"
            Runat="server" />
    </div>
</asp:Content>

Master Page هایی که در بالا ایجاد کرده ایم , به ترتیب سه ستونه و دو ستونه میباشند .

صفحه Column1_Con_Home.aspx که از Column1.master ارث بری میکند .هنگامی که به صفحه اصلی می رویم , محتوای صفحه Site_Main.master و Column1.master و Column1_Con_Home.aspx به یکدیگر متصل و نمایش داده میشوند .

محتوای مربوط به صفحه Column1_Con_Home.aspx

<%@ Page Title="" Language="VB" MasterPageFile="~/Column1.master" AutoEventWireup="false" CodeFile="Column1_Con_Home.aspx.vb" Inherits="Column1_Con_Home" %>

<asp:Content
    ID="Content1"
    ContentPlaceHolderID="ContentPlaceHolder1"
    Runat="Server">
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
</asp:Content>

<asp:Content
    ID="Content2"
    ContentPlaceHolderID="ContentPlaceHolder2"
    Runat="Server">
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
</asp:Content>

<asp:Content
    ID="Content3"
    ContentPlaceHolderID="ContentPlaceHolder3"
    Runat="Server">
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
</asp:Content>


محتوای مربوط به صفحه Column2_Con_About.aspx

<%@ Page Title="" Language="VB" MasterPageFile="~/Column2.master" AutoEventWireup="false" CodeFile="Column2_Con_About.aspx.vb" Inherits="Column2_Con_About" %>

<asp:Content
    ID="Content1"
    ContentPlaceHolderID="ContentPlaceHolder1"
    Runat="Server">
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
</asp:Content>
<asp:Content
    ID="Content2"
    ContentPlaceHolderID="ContentPlaceHolder2"
    Runat="Server">
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
    <br />
    در این قسمت محتوی سایت قرار دارد
</asp:Content>


 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید