如何知道WebForms控件是否第一次呈现?

时间:2013-10-17 07:49:49

标签: c# asp.net webforms controls postback

我有一个WebForms页面,上面有几个.ascx UserControl个实例。这些控件位于选项卡视图的某些选项卡上(asp:MultiView)。因此,如果有的话,只能看到其中一个控件。

这些控件显示来自远程服务的当前数据。 我想从远程服务获取数据一次,第一次显示每个控件(或者用户单击显式刷新按钮)。控件只使用EnableViewState = true保存数据。

我目前有

protected override void OnPreRender(EventArgs e) {
    base.OnPreRender(e);
    Refresh(); //call the web service
    }
}

但是这会在显示时调用网络服务,每次都会。

在页面上,我们有!Page.IsPostBack技巧,但这当然不适用于控件,特别是在以后才显示。

但是如何才能“首次显示”获取数据?

注意:我知道我可以自己将它存储在ViewState上,但使用现有的方法/数据是不是有办法?

1 个答案:

答案 0 :(得分:-1)

尝试布尔值

bool isLoaded = false;

Page_Load()
{
   if(!isLoaded)
   {
      // Actual process here like data fill and etc. . . .
      isLoaded = true;
   }
}