`
lovnet
  • 浏览: 6883029 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

日志不说谎--Asp.net的生命周期 【结题】

阅读更多
日志不说谎--Asp.net的生命周期
这个问题解决掉了,要想知道为什么Page.IsPostBack为true,就要看看Asp.net中是怎么实现这个属性的;
打开Reflector,依次点开System.Web.UI.Page
publicboolget_IsPostBack()
{
if(this._requestValueCollection!=null)
{
if(this._isCrossPagePostBack)
{
returntrue;
}

if(this._pageFlags[8])
{
returnfalse;
}

if((this.Context.ServerExecuteDepth<=0)||((this.Context.Handler!=null)&&(base.GetType()==this.Context.Handler.GetType())))
{
return!this._fPageLayoutChanged;
}

}

returnfalse;
}

IsPostBack由两个因素决定:
1.requestvaluecollection(formpostcollection)ifthat'smissingthenit'snotpostbackstraightaway.2.detectedifdatacomingfromViewStatecontainssamehashcodeasonpreviousrequest,thatisifthehashcodedoesn'tmatchthenitisnotapostback



坚强2002和你一起回头再说...
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics