帮我理解这篇评论重页生命周期

时间:2010-02-12 22:30:00

标签: c# asp.net

我最近遇到了这条评论:

protected void Page_PreRender(object sender, EventArgs e) {
// doing this at PreRender so we don't have to worry about when/if 
// we should bind based on if it's a postback or callback and what not.
OrderList.DataSource = OrderItems;
OrderList.DataBind(); }

我觉得PreRender每次Load都会触发,这是正常页面生命周期的一部分,那么在这里进行数据绑定的优势是什么?

3 个答案:

答案 0 :(得分:1)

如果您使用PreRender,则可以在页面显示之前管理任何控件。在所有事件发生后,PreRender发生在最后


本文从头到尾解释了所有内容,

Control Execution Life Cycle

希望这会有所帮助

答案 1 :(得分:0)

我认为这样做不会有任何好处。至于具体的PostBack评论,他指的是这样的代码:

if(!IsPostback)
{
  ...
}

答案 2 :(得分:0)

狂野猜测:Page_Load中的大量代码取决于处理是否由于回发而完成,并且该代码中的某些内容必须在之前决定绑定。因此,评论者认为,如果在生命周期的某个后期部分进行.databind()调用,则维护将更容易,这使得绑定独立于Page_Load中的代码路径更为明确。