为什么以及何时在asp.net中覆盖和使用OnPreRender

时间:2013-09-24 14:21:52

标签: c# asp.net

我正在处理另一位开发人员编写的代码,如下所示

  protected override void OnPreRender(EventArgs e)
    {
        PopulateGrid();

        base.OnPreRender(e);
    }

在检查PopulateGrid();属性后,我会在Page_Load事件中调用postback方法。在overriden OnPreRender中调用此方法是否有任何好处。是否有必要致电base.OnPreRender(e):?

1 个答案:

答案 0 :(得分:10)

  

在此重写的OnPreRender中调用此方法是否有任何好处?

PreRender阶段发生在引发回发事件后(例如button_Click),因此通过调用PopulateGrid中的OnPreRender,它可以考虑点击的按钮。如果按钮修改数据源,这将非常有用。

  

是否有必要致电base.OnPreRender(e)

严格来说,如果您来自ControlWebControlUserControlPage,那么调用base.OnPreRender只会提升{{1}事件,所以它不是必需来调用它,除非有人为该事件连接了一个处理程序。如果你是从其他东西派生的,那么你需要检查基类是否在PreRender中做了额外的事情。

但我建议您始终调用基本方法,以防将来某些其他组件需要处理OnPreRender事件。