需求:
开发一个信息板应用程序,有一个业务实体"Board"其中有相关属性(名称,颜色等),每一页在querystring里面都将有一个boardid,如
default.aspx?boardid=14
事实上,每一页将提取相关的board信息,因此我建立了一个base page,以便所有的页面都可以从它继承,在base page的OnPreInit从数据库中提取board对象。想让所有的页面都访问board对象,但只提取一次,所以用以下的代码来实现。Public Class BasePage Inherits System.Web.UI.Page Public Shared myBoard As Board = Nothing Protected Overrides Sub OnPreInit(ByVal e As System.EventArgs) myBoard = BoardBL.GetBoardByID(HttpContext.Current.Request.QueryString("boardid")) MyBase.OnPreInit(e) End SubEnd Class
default.aspx页面
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.Title = BasePage.myBoard.NameEnd SubInstead of:Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim myBoard As Board = BoardBL.GetBoardByID(HttpContext.Current.Request.QueryString("boardid")) Me.Title = myBoard.NameEnd Sub
开发一个信息板应用程序,有一个业务实体"Board"其中有相关属性(名称,颜色等),每一页在querystring里面都将有一个boardid,如
default.aspx?boardid=14
事实上,每一页将提取相关的board信息,因此我建立了一个base page,以便所有的页面都可以从它继承,在base page的OnPreInit从数据库中提取board对象。想让所有的页面都访问board对象,但只提取一次,所以用以下的代码来实现。Public Class BasePage Inherits System.Web.UI.Page Public Shared myBoard As Board = Nothing Protected Overrides Sub OnPreInit(ByVal e As System.EventArgs) myBoard = BoardBL.GetBoardByID(HttpContext.Current.Request.QueryString("boardid")) MyBase.OnPreInit(e) End SubEnd Class
default.aspx页面
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.Title = BasePage.myBoard.NameEnd SubInstead of:Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim myBoard As Board = BoardBL.GetBoardByID(HttpContext.Current.Request.QueryString("boardid")) Me.Title = myBoard.NameEnd Sub
MasterPage是一个容器用于装载具体的Page或者从BasePage继承的Page(如果有的话)。两者继承自不同的类。
(个人看法)。
还有另一帖http://topic.csdn.net/u/20071227/13/a74c6eb7-b548-47d3-8973-34970137481f.html[关于Page_PreRender生命周期段的问题]各位大大看看这段代码中嵌套在page_prerender生命周期中引发,为什么?重赏100大洋,不够再加...!!!%%%
重谢,200分.
PreInit事件的作用:1、监测IsPostBack属性,确定页面是否第一次被处理。
2、创建控件
3、设置母版和皮肤
4、读取或设置Profile属性
如果在这个事件中给控件属性赋值,可能会被后面的时间覆盖。
在页面预呈现阶段,页面上的每个控件都会触发PreRender事件,这个事件可以最后改变页面和控件的内容。
详细信息 http://msdn2.microsoft.com/zh-cn/library/ms178472.aspx