0
点赞
收藏
分享

微信扫一扫

Asp.net 2.0专题之一:MasterPage


由于.net 2.0 很快就要发布了,大家都会面临一个IDE环境迁移(vs.net 2005)和.net 2.0新特性的应用问题,在接下来的一些文章,我会做一些asp.net 2.0的专题,写这些文章的初衷是想为很多分析Community Server的Coder们提供一个在我能力范围内的帮助,让大家看到一些新技术是如何诞生和被应用的,很大一部分新特性对于一个熟悉Community Server的Coder来说根本算不上新,因为它们早就被应用在CS中。专题主要包括:MasterPage、Theme、本地化、SiteMap等。

这一系列的专题编写环境是winxp sp2,vs.net 2005 beta2,SQL Server2005 CTP,.Net Framework Version 2.0.50215。

好了,打开vs.net 2005新建一个web project吧:

这个专题中主要讲解的是MasterPage,什么是MasterPage,先不解释,我后面再来看这个定义,给刚刚建立的工程添加一个MasterPage:MasterPage以master为后缀名,我们刚刚建立了一个MasterPage.master文件,该文件有如下内容:

粗看还以为这是一个普通的

表面明这是一个master文件,同时在页面中你可以看到用<div>包裹着的一个asp控件

Contentplaceholder,这个叫“内容占位符”,他的作用就是先通过div或者table进行分割,然后“霸占”一个地方,声明此地有“主”了,不过主人不是Contentplaceholder,而是后面会说道到的Content控件。

注意:<div>一般通过css样式表来控制页面的布局,如cnblogs里面的很多皮肤都是如此,为了不把问题复杂化,我还是用table。在Design状态下画出如下表格(vs.net 2005 的Design功能真的好用很多^_^):

这是一个很标准的网页页面布局,下一步就把Contentplaceholder放进去“占地盘”“:

放完后我们把各个部分的ContentPlaceHolder重新命名一次,更改后的代码如下:

<%  


@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "https://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">


<html xmlns="https://www.w3.org/1999/xhtml" >




<head runat="server">




<title>Untitled Page</title>


</head>


<body>


<form id="form1" runat="server">


<table width="60%">

<tr>

<td colspan="3" height="80">

<asp:ContentPlaceHolder ID="TopContent" runat="server">

</asp:ContentPlaceHolder>


</td>

</tr>

<tr>

<td height="300" width="25%">

<asp:ContentPlaceHolder ID="LeftContent" runat="server">

</asp:ContentPlaceHolder>

</td>

<td>

<asp:ContentPlaceHolder ID="CenterContent" runat="server">

</asp:ContentPlaceHolder>

</td>

<td width="25%">

<asp:ContentPlaceHolder ID="RightContent" runat="server">

</asp:ContentPlaceHolder>

</td>




</tr>




<tr>




<td colspan="3" style="height: 80px">




<asp:ContentPlaceHolder ID="CopyrightContent" runat="server">




</asp:ContentPlaceHolder>




</td>




</tr>




</table>




</form>




</body>




</html>




aspx页面,其实不是,最上面的<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

举报

相关推荐

0 条评论