所谓的母版页,我的理解就是一个大体布局一样的页面,可以被不同的具体网页多次引用,然后往里面添加具体的内容,就好比我们用来存放照片的框架,框架外形大体都一样,当然可以对框架进行必要的修饰,当我们想用来存放照片时候,只需要将不同的照片放入框架即可,所以母版页的功能也是如此,我们发现大多数的网页布局都差不多,上面是logo,菜单条,下面是公司地址,版权声明等,我们没必要对每个网页都进行重复的操作,因此便引入母版页(MasterPage)。
MasterPage是这样的一种技术,把页面布局好,把需要填充的部分“留空”,留空的部分由子页面来填充内容,这样子页面只要填空就行,不许重复设计页面结构。一旦要修改页面的结构只需修改母版页的结构即可,这样所有的页面都会变化。母版页“挖坑”,具体的页面“填坑”。用来填充的页面用普通的WebFrom就行。
下面我来通过VS2008具体演示一下
1: 打开VS2008单击文件,选择新建网站。这样我们便建立一个website.然后右键单击项目名,添加新项,选择母版页、这样我们便建立了母版页。观察发现,母版页与普通的aspx没什么差别,就是多了一个
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
标签,这就是上文说的所谓的“坑”,我们在子页面就是往这里面添加内容来进行填充。建立玩母版页,我们可以再其中添加内容,达到我们想要的效果,注意在母版页一般不要往“坑”里面添加内容,因为我们真正需要的是到子页面再对坑进行填充。
2:创建子页面用来填充母版页。右键点击项目名,选择web窗体,并将右下角的选择母版页也选上,然后选择添加,将事先建好的母版页添加进去就行,我们发现用来填充的子页面没有以往的body,head等标签,就是一些简单的用来“填坑”的标签
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
</asp:Content>
这样便可以,此外我们还可以在子页面对母版页进行操作,我来举个例子
首先在母版页添加一个Button
<asp:Button ID="Button1" runat="server" Text="Button" />
在子页面也添加一个Button
<asp:Button ID="Button1" runat="server" Text="Button2"
οnclick="Button1_Click" />
然后在后台添加代码(就是实现点击子页面的BUtton后,在母版页添加的Button会消失的简单例子)
protected void Button1_Click(object sender, EventArgs e)
{
Button btr = (Button)this.Master.FindControl("Button1");
btr.Visible = false;
}
母版页的使用十分简单,哪里不对还望高手们指出,,谢谢