asp.net 模板页使用详解

模板页的介绍:

母版页是VS2005中新引入的一个概念,它很好地实现界面设计的模块化,并且实现实现了代码的重用。它就像婚纱影楼中的婚纱模板,同一个婚纱模板可以给不同的新人用,只要把他们的照片贴在已有的婚纱模板就可以形成一张漂亮的婚纱照片,这样可以大大简化婚纱艺术照的设计复杂度。这里的母版页就像婚纱模板,而内容页面就像两位新人的照片。
在VS2003中没有母版页,要实现这种设计重用的效果,我们只能用“用户控件”来实现,但用户控件没有一种可视化的组合外观,使用起来不太方便。

代码:

模板页的扩展名是 .master,它的使用跟普通的页面一样,可以可视化的设计,也可以编写后置代码。与普通页面不一样的是,它可以包含ContentPlaceHolder控件,ContentPlaceHolder控件就是可以显示内容页面的区域。它就像一个占位符,可以动态添加任何代码,是多个内容页共享同一个模板,这样可以使一个网站的整体风格保持一致,也可以实现代码重用。

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
......
    <form id="form1" runat="server">
    <div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
    </div>
    </form>
......

 在模板页中添加内容有两种方法,一种是直接写入代码,另一种是使用用户控件来实现。

内容页(扩展名是.aspx)

在建立内容页面的时候,在“添加新项”对话框中要选中“选择母版页”复选框。这样建立的页面就是内容页面,内容页面在显示的时候会把母版面的内容一起以水印淡化的形式显示出来,而在母版页中的ContentPlaceHolder控件区域会被内容页面中的Content控件替换,程序员可以在这里编写内容页面中的内容。

<%@ Page Title="" Language="C#" MasterPageFile="~/User/Template.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="CASHZIOTSite.Web.User.Index" %>

<asp:Content ID="contentContainer" ContentPlaceHolderID="placeholder1" runat="server">

<div class="test"> ------content------ </div>

</asp:Content>

注意:内容页要加载到模板页中则内容页的ContentPlaceHolderID要和模板页中的asp:contentplaceholder 的id一样。(上面两段例子来自于不同的项目,故id不匹配)

posted @ 2013-04-26 16:22  Rampage_Pom  阅读(345)  评论(0)    收藏  举报