问题描述
protectedoverridevoidOnInit(EventArgse){???//这里怎么写让PageLoad()失效或不执行base.OnInit(e);}protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){InitForm();}}
谢谢
解决方案
解决方案二:
Mark
解决方案三:
publicclassMyModule:PageModule{protectedoverrideOnPrePageExecute(objectsender,EventArgse){Page.Load+=newEventHandler(Page_Load)}privatePage_Load(objectsender,EventArgse){//TODO:将代码写在这里。}}
解决方案四:
参阅IHttpModule类
解决方案五:
这是ASP.net页面生命周期,不可能不执行的,但你可以换一种思路去解决:privateboolexit=false;protectedoverridevoidOnInit(EventArgse){if(某些条件)exit=true;base.OnInit(e);}protectedvoidPage_Load(objectsender,EventArgse){if(exit)return;if(!IsPostBack){InitForm();}}
解决方案六:
RE:Page.Load+=newEventHandler(Page_Load)----------------这种方法是添加一个事件RE:privateboolexit=false;protectedoverridevoidOnInit(EventArgse){if(某些条件)exit=true;base.OnInit(e);}-----------------------能不能不要再overrideOnInit外面写其他代码就在Init中写能不能实现这个功能啊谢谢
解决方案七:
如果要做到的话用Response.End()就可以了。不过这应该不是你要的效果。
解决方案八:
引用6楼Allen_Chen_的回复:
如果要做到的话用Response.End()就可以了。不过这应该不是你要的效果。
对不能Requery.End()
解决方案九:
引用5楼zyciis322的回复:
RE:Page.Load += new EventHandler( Page_Load )----------------这种方法是添加一个事件RE:privateboolexit=false;protectedoverridevoidOnInit(EventArgse){if(某些条件)exit=true;base.OnInit(e);}-----------------------能不能不要再overrideOnInit外面写其他代码就在Init中写能不能实现这个功能啊谢谢
这有点钻牛角尖了吧,我已经说了,这是ASP.NET的生命周期,你不可能在某个事件中阻止其他的事件的进行。
解决方案十:
引用7楼zyciis322的回复:
引用6楼Allen_Chen_的回复:如果要做到的话用Response.End()就可以了。不过这应该不是你要的效果。对不能Requery.End()
这样的话可以用设置flag来做。上面已经有代码了。除了用field也可以用Context.Items[key]来存储flag.
解决方案十一:
引用9楼Allen_Chen_的回复:
引用7楼zyciis322的回复:引用6楼Allen_Chen_的回复:如果要做到的话用Response.End()就可以了。不过这应该不是你要的效果。对不能Requery.End()这样的话可以用设置flag来做。上面已经有代码了。除了用field也可以用Context.Items[key]来存储flag.
顶