技术开发 频道

ASP.NET 2.0新特性Master Page锐利体验

   【IT168技术文档】Microsoft 在 .net 1.0 取得不错的成绩的同时,迅速推出了.net 2.0。我们还在仔细回味.net 1.0给我们带来的快速开发的喜悦的同时,.net 2.0的到来让我们有点手忙脚乱了。在本文中我们将带领大家,去体验asp.net 2.0中的系列新特性。

当大家还在诟病Visual Studio它在界面设计中的薄弱的时候,.net 2.0 在这个方面得到了充分的加强。使用Master 与 Themes 能够很好的统一 net 解决方案中的界面风格,为提高工作效率,降低开发和维护强度,提供了有力支持。

本系列文章适合初学者和所有对asp.net 2.0新特性不了解的读者。我们将使用 Visual Studio 2005 为大家展示这些新特性。使用“个人网站初学者工具包”做为范例代码。下面我们看如何创建这个范例代码:

1  选择个人网站初学者工具包


1. Master Page
1.1 master page 基本概念

用Dreamweaver  做过web 界面设计的读者都应该知道,在Dreamweaver 中可以设置一个简单的网页作为模板,当修改该模板的设计的时候,修改后的设计将自动套用到使用该模板的所有文件上。这样的话减轻了修改的强度,而且还保持了一致性,不会造成某个页面的遗漏!而 master page 正是一个具有这样功能的,.net 2.0中的一个全新的特性。
   


在上面(图2)的文件列表中,Default.master 这个文件就是一个master page。好让我们来,看看它的源代码。

<%@ Master Language="C#" CodeFile="Default.master.cs" Inherits="Default_master" %>

<!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" xml:lang="en" > <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div class="header"> <h1>此处是您的姓名</h1> <h2>我的个人站点</h2> <asp:menu id="menua" runat="server" datasourceid="SiteMapDataSource1" cssclass="menua" orientation="Horizontal" maximumdynamicdisplaylevels="0" skiplinktext="" staticdisplaylevels="2" /> <div class="nav"> <asp:SiteMapPath id="SiteMapPath1" runat="Server" PathSeparator=" > " RenderCurrentNodeAsLink="true" /> &nbsp; | &nbsp; <asp:LoginStatus ID="LoginStatus1" Runat="server" /> </div> </div> <asp:contentplaceholder id="Main" runat="server" /> <div class="footerbg"> <div class="footer"> <asp:menu id="menub" runat="server" datasourceid="SiteMapDataSource1" cssclass="menub" orientation="Horizontal" maximumdynamicdisplaylevels="0" skiplinktext="" staticdisplaylevels="2" /> 版权所有 (C) 2005 此处是您的姓名。 </div> </div> <asp:sitemapdatasource id="SiteMapDataSource1" runat="server" startingnodeoffset="0" /> </form> </body> </html>

在上面的代码中

<%@ Master Language="C#" CodeFile="Default.master.cs" Inherits="Default_master" %>

这一句是申明该页面为一个master page 页。大家需要记住的是:master page 页是不能够单独运行的。在此我们需要简单的提一下套用 master page 页的页面的运行机制:

(1)访问者通过URL来请求在server 上的某个页面。
(2)Server 在产生内容页的时候,读取@ Page指令。如果该指令引用一个master page,则读取该master page。如果是第一次请求这两个页,则两个页都将先进行编译。
(3)master page将合并到请求页的控件树中。
(4)各个控件的内容合并到母版页中相应的ContentPlaceHolder控件中。
(5)呈现(Render事件)得到结果页。

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

这句是标识在master page 中可以编辑的区域。也就是说我们所有的程序必须放在这个控件内。读者可以理解为这个控件为一个内容占位符。

 在这个master page 中,没有后台编码。在做开发的时候,读者可以根据自己的需要来加上自己的代码。让我们来看一下这个master page 呈现的界面
 

 


0
相关文章