Asp.net1.X Masterpages的使用

    为什么使用母版页?

§         用于标准的模板内容、嵌套模板和重复模板,提供BS方式下高度的代码重用性。

§         设计器支持,简单好用。

§         可以实现代码与视图分离。

§         直接随Asp.net2.0发布,可以直接使用的控件。

 

v      母版页的原理?

MasterPage是用来简单的实现模板技术的一个UserControl(用户自定义控件)。 当发出页面请求后,页面动态加载母版页控件,再由母版页控件再动态加载内容控件。

设计好的模板页相当于站点中其他页面的容器,每个真正的功能页面只要加一个母版页的使用指令就可以把所有母版页上的界面元素和处理元素“据为己有”。母版页和功能页面的开发可以完全独立开来,因此当界面布局需要改动时,只需要修改母版页的布局就可以了。

 

v      如何开发一个母版页?

非常简单,这是一个名为“BasicMaster.ascx”的母版页示例代码,一看就明白:

<!—注册使用MasterPages控件的dllà

%@Register TagPrefix="mp" Namespace="MetaBuilders.WebControls.MasterPages" Assembly="MetaBuilders.WebControls.MasterPages" %

<!—如同普通页面的页面结构à

<html>

     <body>

<!—根据需要可以添加一个Form作容器à

<mp:nobugform runat="server">

<!—页面布局元素,所有添加的元素都是功能页面的共有财产à

        <h1>This Is In BasicMaster</h1>

       <hr>

    <!—注意,这是将来功能页面的内容区à

       <mp:region id="BasicContent" runat="server">Default Content</mp:region>

       <hr>

       <h1>This Is In BasicMaster</h1>

            </mp:nobugform>

     </body>

</html>

v      如何使用母版页?

现在设计一个功能页面来使用这个母版页,名称为MyPage.aspx,代码如下:

<%@ Page Language="C#" %>

<!—注册使用MasterPages控件的dllà

<%@ Register TagPrefix="mp" Namespace="MetaBuilders.WebControls.MasterPages" Assembly="MetaBuilders.WebControls.MasterPages" %>

<!—添加一个内容容器控件,控件的MasterpageFile属性指明该页所使用的母版页,~表示根路径à

<mp:contentcontainer runat="server" id="MPContainer" MasterPageFile="~/BasicMaster.ascx">

<!—添加一个内容控件,控件的id属性必须与母版页的Region控件的id相同,表示以下内容元素将被嵌在母版页中à

<mp:content id="BasicContent" runat="server">

<!—这里是你的功能页面上的内容à

    <table>

        <tr><td>This Is In MasterPage</td>    </tr>

        <tr><td><img src = "~images/1.gif"/></td></tr>

    </table>

</mp:content>

</mp:contentcontainer>

v      使用母版页的缺点?

使用母版页的界面效果不如静态页面的UI效果自然出彩;

使用母版页,在进行功能页上的页面内容设计时不方便使用设计器,不过可以现在mp:contentcontainer 所标识的区外使用设计器设计好界面内容,待设计完成之后,再把代码剪贴至mp:contentcontainer 内。

 

后记:

Asp.Net2.0中,改进的更好用了,设计器提供更好的控制,且不用手工在添加这些包含指令。

posted on 2006-10-24 11:51  Jessica.kjm  阅读(231)  评论(0编辑  收藏  举报