关于page类的继承的问题

liaoyunt07 2009-08-30 03:02:50
新建一个类继承page类,再覆盖Page类的onload事件,判断session是否为空~

然后所有页面继承这个类后,为什么不执行page_load事件?

...全文
185 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
liaoyunt07 2009-08-31
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 ojlovecd 的回复:]



那你这个新建页面里的cs代码又是怎么写的?
[/Quote]

我是在这个继承重写类的page页面的page_load事件!获取session值!

获取不到!

到底是override 在OnLoad 事件还是OnInit事件?
我姓区不姓区 2009-08-31
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 liaoyunt07 的回复:]
C# codeusing System;using System.Web.UI;publicclass MyPage: Page
{protectedstring _UserID;publicstaticstring UserID
{get{return _UserID;}set{_UserID= value;}
}protectedoverridevoid OnLoad(EventArgs e)
{base.OnLoad(e);if(Session["UserID"]==null)
{
Response.Write("<script>alert('登录已超时');window.location.href='xxx.aspx';</script>");
}else
{
UserID= Session["UserID"].ToString();
}
}
}!

新建一个页面,继承这个类!
为什么不执行page_load事件?

[/Quote]

那你这个新建页面里的cs代码又是怎么写的?
yangniao 2009-08-31
  • 打赏
  • 举报
回复
帮顶了
liaoyunt07 2009-08-31
  • 打赏
  • 举报
回复
到底是override 在OnLoad 事件还是OnInit事件里写代码?
liaoyunt07 2009-08-31
  • 打赏
  • 举报
回复

using System;
using System.Web.UI;

public class MyPage: Page
{
protected string _UserID;
public static string UserID
{
get{return _UserID;}
set{_UserID = value;}
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if(Session["UserID"]==null)
{
Response.Write("<script>alert('登录已超时');window.location.href='xxx.aspx';</script>");
}
else
{
UserID = Session["UserID"].ToString();
}
}
}



新建一个页面,继承这个类!
为什么不执行page_load事件?
bsetsail 2009-08-31
  • 打赏
  • 举报
回复
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
}

base.OnLoad(e);这个没有加上吧?
LutzMark 2009-08-31
  • 打赏
  • 举报
回复
用继承很常见的问题:覆盖的基类方法没有调用原基类应有的逻辑方法
6#楼代码说明了问题
用HttpHandle 也可以,不过所有页面都会起作用
zjb211434 2009-08-31
  • 打赏
  • 举报
回复
问题解决了没?关注
ydlydlydl3 2009-08-30
  • 打赏
  • 举报
回复
同意6楼的回答,个人喜欢最后写BASE.ONLOAD.
BASE.ONLOAD不写是不行的(没有体现继承)
herry775 2009-08-30
  • 打赏
  • 举报
回复
关注
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 chen_ya_ping 的回复:]
override OnPageLoad()
{
  if(session["username"]==null)
{
  Response.Redirect("");
}
}
[/Quote]

又来一个同样毛病的代码!
chen_ya_ping 2009-08-30
  • 打赏
  • 举报
回复
override OnPageLoad()
{
if(session["username"]==null)
{
Response.Redirect("");
}
}
  • 打赏
  • 举报
回复
呵呵,3楼的代码也是那样的毛病,破坏了Page还认为是正确的?!
  • 打赏
  • 举报
回复
算了,也不跟你“逗闷子”了,给你写上两行代码:
using System;
using System.Web.UI;

public class MyPage: Page
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
//在这里写上你的方法
}
}


自己想想吧,什么叫做事件,以及事件到底是怎么触发的。
  • 打赏
  • 举报
回复
[Quote=引用楼主 liaoyunt07 的回复:]
,再覆盖Page类的onload事件
[/Quote]

事件还能“覆盖”?瞎掰的概念吧?!

同意1楼的判断,根本就是你自认为想当然(是正确)的地方出的问题。
sxmonsy 2009-08-30
  • 打赏
  • 举报
回复
要在Onload之前执行就得在OnInit里写。
wuyq11 2009-08-30
  • 打赏
  • 举报
回复
代码问题。这样最好用HttpHandle
public class BasePage : System.Web.UI.Page
{
public BasePage()
{
appTitle =System.Configuration.ConfigurationManager.AppSettings["Title"].ToString();
}
private string appTitle;
public string AppTitle
{
get { return appTitle; }
set {
appTitle = value;
}
}
protected override void OnInit(EventArgs O)
{
if (base.Session["UserId"] == null || base.Session["UserId"].ToString().Equals(""))
{
Response.Redirect("~/Error.aspx");
}
}
}
cuike519 2009-08-30
  • 打赏
  • 举报
回复
这是不可能的。。。

页面生命周期必走OnLoad方法。
我姓区不姓区 2009-08-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 liaoyunt07 的回复:]
新建一个类继承page类,再覆盖Page类的onload事件,判断session是否为空~

然后所有页面继承这个类后,为什么不执行page_load事件?


[/Quote]

你怎么写的?

62,052

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧