ASP.NET中System.Web.UI.Page的继承问题

看了一些文章,通过写PageBase的页面并使其它page继承这个PageBase,可以方便地实现用户检验等需求。

后来发现子类page继承后,父类的PageLoad不执行了。

以下帖子提出了问题,但是没有提供正解:

http://bbs.csdn.net/topics/390482363?ticket=ST-704066-MoolZ4f7GW3lTwMCb6cK-passport.csdn.net

问题原因:

子类Page_Load覆盖了父类的Page_Load方法。

解决方法:

给子类方法前面加一个“new”,然后在子类方法里面这样写:

public partial class NewPage: Pagebase

{

protected new void Page_Load(object sender, EventArgs e)

{

//父类的Page_Load被覆盖了,因此要手动调用一下

base.Page_Load(sender, e);

}

}

这样父类和子类的PageLoad方法都会被调用,而且可以控制父类的PageLoad是否首先被调用,这样就可以优先检验用户的身份了。

时间: 2024-08-14 17:38:02

ASP.NET中System.Web.UI.Page的继承问题的相关文章

System.Web.UI.Page的用法,一定要学会懒

在ASP.NET中,任何页面都是继承于System.Web.UI.Page,他提供了ASP.NET中的Response,Request,Session,Application的操作.在使用Visual Studio 创建ASP页面时,系统会自动为你创建一个继承与System.Web.UI.Page的类与页面文件关联. public partial class yourPage:System.Web.UI.Page { protected void Page_Load(Object sender,

非静态的字段、方法或属性“System.Web.UI.Page.ClientScript...”要求对象引用 (封装注册脚本)

在写项目时想对asp.net的注册前台脚本事件进行封装,就添加了一个BasePage.cs页面,但一直报错‘非静态的字段.方法或属性“System.Web.UI.Page.ClientScript...”要求对象引用”’ 原写法: /// <summary> /// 显示客户端提示框 /// </summary> /// <param name="msg"></param> public static void ShowMsg(strin

继承System.Web.UI.Page的页面基类

服务器端的page类      所有我们编写的页面都继承自page类,可见page类是非常重要的,page类提供了哪些功能,直接决定了我们的页面类可以继承什么功能,或者说,直接决定了我们的页面类功能的强大与否!那么,page类实现了什么功能呢?如前所述的三个客户端的事实,页面类要管理ViewState,还要管理事件.page类起码要提供这些功能以供我们的页面类重载或者调用. page类提供了四个顺序执行的事件Init,Load,PreRender和Unload,这四个事件是一条主线,依次标明了p

“XXX.Index”不扩展类“System.Web.UI.Page”,因此此处不允许的问题

“XXX.Index”不扩展类“System.Web.UI.Page”,因此此处不允许的问题 原因:设计页面继承的路径和后台.cs页面类的路径不一致造成的 看下图 这个是设计页面的样式 这个是后台cs文件代码 如果这两地方的路径不一致则会导致上述错误出现 解决方法:将这两个地方的路径统一即可解决

ASP.NET(C#)——不扩展System.Web.UI.Page

错误原因:复制,移动,重命名导致配置不对. xxx.aspx文件的MasterPageFile和Inherits与xxx.aspx.cs文件的命名空间和类名不一致. 解决方法: 修改xxx.aspx文件或者xxx.aspx.cs文件. <%@ Page Title="" Language="C#" MasterPageFile="~/xxx/xxx.Master" AutoEventWireup="True" CodeB

System.Web.UI.Page事件执行顺序

#region OnPreInit 第一步(显式重写,文章下面有隐式重写) protected override void OnPreInit(EventArgs e) { //检查 IsPostBack 属性来确定是不是第一次处理该页. //创建或重新创建动态控件. //动态设置主控页. //动态设置 Theme 属性. //读取或设置配置文件属性值. //注意 //如果请求是回发请求,则控件的值尚未从视图状态还原.如果在此阶段设置控件属性,则其值可能会在下一事件中被重写. base.OnPr

ASP.NET 使用 System.Web.Script.Serialization 解析 JSON (转)

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯.这些特性使JSON成为理想的数据交换语言. JSON建构于两种结构: 1.“名称/值”对的集合(A collec

命名空间“System.Web.UI”中不存在类型或命名空间名称“ScriptReference”(是缺少程序集引用吗?)

Website从framework 3.5升级到framework4.0编译的时候报错: 错误 10 命名空间“System.Web.UI”中不存在类型或命名空间名称“ScriptReference”(是缺少程序集引用吗?) c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\01.web\582f5aca\78ccecad\App_Web_s2pcmnfi.0.cs 521 在网上找的同一现象的解决办法:

Asp.net中的web.config配置

目录 Asp.net中的web.config配置... 1 一. 配置文件保存位置... 2 二. 配置文件加载顺序... 2 三. 配置文件节点介绍... 3 1. . 3 2. . 5 3. . 5 4. . 6 . 11 四. 针对配置文件的一些编程操作... 11 1. 运行时进行配置文件的修改... 11 2. 配置节点的加密... 12 web.config是asp.net中保存配置信息(比如数据库连接字符串等)的重要文件.它是基于xml的文本文件方式放在Web应用程序的任何目录中,