3

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

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

        base.OnPreRender(e);
    }

检查属性后,我会 PopulateGrid();在 Page_Load 事件中调用方法。postback在 this 中调用这个方法有什么好处吗overriden OnPreRender?是否有必要打电话base.OnPreRender(e):?

4

1 回答 1

10

在这个被覆盖的内部调用这个方法有什么好处OnPreRender吗?

PreRender 阶段发生在引发回发事件之后(例如,button_Click),因此通过调用PopulateGridOnPreRender它可以考虑被单击的按钮。如果按钮修改数据源,这很有用。

有必要打电话base.OnPreRender(e)吗?

严格来说,如果您是从ControlWebControlUserControl或派生的Page,那么调用base.OnPreRender只会引发PreRender事件,因此除非有人为该事件连接了处理程序,否则没有必要调用它。如果您从其他东西派生,那么您需要检查基类是否在OnPreRender.

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

于 2013-09-24T14:25:52.343 回答