我有一個WebForms頁面,其上有幾個.ascx UserControl的實例。這些控件位於選項卡視圖的某些選項卡上(asp:MultiView)。因此,如果有的話,只有其中一個控件可見。如何知道第一次呈現WebForms控件?
這些控件顯示來自遠程服務的當前數據。 我想只從遠程服務獲取數據一次,在第一次顯示每個控件時(或者用戶點擊一個明確的刷新按鈕)。控制只是使用EnableViewState = true
來保存數據。
我現在有
protected override void OnPreRender(EventArgs e) {
base.OnPreRender(e);
Refresh(); //call the web service
}
}
但這調用Web服務時表示,每次。
在頁面上,我們有!Page.IsPostBack
技巧,但是這當然不適用於控件,特別是在以後才顯示。
但是,如何獲取數據「第一次顯示」只?
注意:我知道我可以將它存儲在ViewState上,但是沒有辦法使用現有的方法/數據嗎?
您是否在尋找[UserControl.IsPostBack](http://msdn.microsoft.com/en-us/library/system.web.ui.usercontrol.ispostback.aspx ) –
不幸的是,這似乎只是該頁面的「IsPostBack」的副本,因爲它在第一次顯示控件後不會改變(如果它在初始頁面加載時未顯示) – Marcel
如果您認爲您的問題可以看作是緩存問題,也許這可以是一些幫助http://msdn.microsoft.com/en-us/library/h30h475z%28v=vs.90%29.aspx – jbl