访问ASP .NET母版页的三种常用方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
访问母版页的三种常用方法
摘要:母版页的主要功能是为网站创建统一的界面和样式,为Web程序提供共享的控件和代码。在程序设计中,要经常访问母版页中的元素,本文主要介绍引用母版页属性、方法、控件和响应控件事件的常用方法。
关键词:;母版页
1母版页概述
在网站的开发过程中,为了给用户提供总体外观一致的感觉,应该对网站进行统一的风格设计和布局。例如,网站应该具有相同风格的导航栏、功能区和广告栏等。
母版页是2.0为了帮助网站开发人员解决上述问题提供的一种新技术,它的主要功能是为应用程序创建统一的用户界面和样式,提供共享的HTML、控件和代码,可作为模板供网站内的所有页面(或一类页面)使用,从而提高程序开发效率。
母版页由两部分组成:母版页本身和内容页。母版页为应用程序中的所有页面(或一类页面)定义所需的外观和标准行为;内容页包含要显示的内容。用户只能访问内容页,当服务器收到用户请求时,会将母版页的布局与内容页的内容组合在一起输出,从而实现在统一的风格下显示不同的内容。
1.1母版页
母版页是一个以.master为扩展名的文件,由特殊的@Master指令识别。它可以包含静态文本、HTML和服务器控件的预定义布局,用于定义统一的风格和外观。此外,母版页还包括一个或多个占位符(ContentPlaceHolder)控件,用于显示与之关联的内容页。
1.2内容页
内容页与普通网页类似,以.aspx为扩展名,但是在创建时要为它指定母版页。母版页定义了网页的架构,内容页则主要用于定义页面中的非公共内容,即母版页中占位符控件中的内容。内容页通过MasterPageFile属性来与指定的母版页建立绑定。
2创建母版页和内容页
在Visual Studio 2005中新建一个网站,然后添加一个母版页,命名为MasterPage1。此时在“源视图”中可以看到如下代码:,母版页以@Master声明开头,而不是通常的@Page。在母版页的主体中包含一个占位符控件用于显示
与之关联的内容页。
创建内容页与创建普通Web窗体类似,只是要将“选择母版页”选中,并选择网站中存在的母版页。在“源视图”中可以看到如下代码:,它表明此内容页的母版页为Master1.master。
3访问母版页的常用方法
一般情况下,内容页不能直接访问母版页中的内容。我们可以通过引用母版页的属性(方法)、控件和响应控件事件这三种方式来访问母版页。
3.1引用公共属性和方法
引用母版页中的属性和方法需要在内容页中使用@MasterType指令-在ContentPage.aspx文件中加入语句,该指令的作用是使内容页的Master属性被强类型化,即通过@MasterType指令创建与内容页相关的母版页的强类型引用。
在内容页中只能引用母版页中的公共属性和方法。在母版页的代码文件中加入下面的代码:
Private _str As String = “公共属性”
Public Property property1()As String
Get
Return _str
End Get
Set(ByVal value As String)
_str = value
End Set
End Property
Public Sub sub1()
MsgBox(“公共方法”)
End Sub
其中Property1是公共属性,用于访问私有变量_str;Sub1是公共方法。
在内容页的代码文件Content.aspx.vb中通过下面的代码访问母版页的属性和方法:
Master.sub1()
Dim str As String = Master.property1
3.2引用母版页控件
在内容页中还可能引用母版页的控件,而且没有必须为公共成员的限制。获得母版页控件的引用通常有两种方法。
3.2.1 通过母版页的公共属性返回控件。
Public Property button()As System.Web.UI.WebControls.Button
Get
Return Me.button1
End Get
Set(ByVal value As System.Web.UI.WebControls.Button)
Me.button1 = value
End Set
End Property
上面的代码返回母版页中的Button控件,在内容中通过下面的代码获取对控件的引用:
Dim button As New System.Web.UI.WebControls.Button
button = Master.button
3.2.2 使用FindControl()方法。
Dim button As New System.Web.UI.WebControls.Button
button = Master.FindControl(“button1”)
其中button1为母版页控件ID。
3.3响应母版页控件事件
控件的事件是在本地处理的,即母版页中的控件在母版页中引发事件。对应同一母版页的不同内容页,如果要对母版页中的同一控件的同一事件采取不同的处理方法,则需要在不同的内容页中响应母版页的事件。
要在内容页中响应母版页的控件事件需要将内容页的响应函数委托给母版页的控件事件。
下面的例子中,内容页响应了母版页中Button控件的Click事件。
在内容页中加入下面的代码:
Protected Sub content_btnClick(ByVal sender As Object, ByVal e As System.EventArgs)
MsgBox(“内容页响应母版页Button控件事件”)
End Sub
在内容页的Page_Load事件中加入委托:
AddHandler Master.button.Click, AddressOf content_ btnClick
需要注意的是,如果在母版页中也响应了Button控件的Click事件,则程序运行时,先响应母版页的处理方法,后响应内容页的处理方法。