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

本文关键字:第一次 是否 何知道 WebForms 控件 | 更新日期: 2023-09-27 18:35:54

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

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

我目前有

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

但这每次都会在显示时调用 Web 服务

在页面上,我们有!Page.IsPostBack技巧,但这当然不适用于控件,尤其是在稍后显示时。

但是如何仅"第一次显示"获取数据?

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

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

尝试布尔值

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