






















我们一直在服务器端的代码中使用各种事件,而这些事件大多是专用于特定的服务器控件的。我们可以在这些事件中定义我们所需要的操作,如Button的Click事件。但是我们还希望在创建的删除页面时执行某些操作,幸运的是,ASP.NET页面在页面的生命周期内给我们定义了许多事件来完成这些操作。而这也为我们PageBase类的编写提供了条件。
一、页面生命周期的事件
在页面的生命周期内,定义了如下事件:
PreInit,Init,InitComplete,PreLoad,Load,LoadComplete,PreRender,PreRenderComplete和UnLoad事件,在每一个事件中,我们都可以根据需要来定义我们自己的操作。现把几个比较常用和重要的页面事件所完成的操作归结如下:
有了这些事件和在事件内需要定义的操作后,我们就可以编写我们的PageBase类了。
二、PageBase类的编写
在编写PageBase类之前,要清楚所有页面的公共行为和属性。以一般的信息管理系统为例,页面的公共行为和属性一般如下:
有了这些,我们开始编写我们的PageBase类,当然,这个类必须继承于System.UI.Web.Page类。
1>定义页面的属性,我们将数据库和当前用户定义为页面的属性,我们还可以取得页面的HTTP响应和判断页面在执行过程中是由使用了事务(可重写)。代码如下:
Code
2>重写页面的事件,并在这些事件中定义我们的操作。,在这个PageBase类中,重写了InitComplete,Load,UnLoad和Dispose事件。
在InitComplete事件中,取得了当前用户,判断用户是否登陆和初始化查询条件(可重写),代码如下:
Code
在这个事件中,我们定义了一个虚方法InitialQueryCondition(),可以根据需要在页面中重写这个方法。
在Load事件中,我们判断了用户的权限,加载了页面的样式表,完成了页面数据绑定和定义了当页面第一次加载时的方法(可重写),代码如下:
Code
在Unload和Dispose事件中,定义了提交事务和断开数据库连接操作,代码如下:
Code
到目前为止,我们根据我们自己的需要完成了页面的基类,当然,这个基类不是固定的,根据不同的需要可以在不同的事件中定义不同的操作。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。