别凡事都 Page_Load

作者:vkvi 来源:ITPOW(原创) 日期:2011-6-2

新建一个 Web Form 后,在 .aspx.cs 文件中,默认有一个 Page_Load 方法,它是用来处理 PageLoad 事件的。

由于它是默认就显示出来的,所以我们的代码也常常写在里面,可是我们的错误就犯在此处,有些东西是不能写在 Page_Load 的,比如请参见为什么在 Page_Load 中创建的动态控件就取不到值,Page_Init 中创建的就能?

另外,本文再举一例。

假设 .aspx 使用了 MasterPage:在 MasterPage 的 Page_Load 中设置了 Title,我们希望这是默认的 Title;在 .aspx 中的 Page_Load 中同样设置了 Title,表示更适合当前页面的 Title。

可是我们会发现,始终显示的是 MasterPage 中的 Title,为什么呢?因为对于 Page_Load 来说,先执行的是 .aspx 的,再执行的 MasterPage 的,这与 Page_Init 相反。请参见 ASP.NET 页面事件执行顺序

所以

不要凡事都把代码放在 Page_Load 中。

相关文章