嗨,大家好,我們已經在我們的項目的頁面的一個結構如下:asyncpostbacktrigger控件內的Postbacktrigger控件?
<asp:UpdatePanel ID="up1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="tabContainer" EventName="ActiveTabChanged" />
</Triggers>
<ContentTemplate>
<cc1:TabContainer ID="tabContainer" runat="server" Visible="false" ActiveTabIndex="0" AutoPostBack="true" OnActiveTabChanged="BtnTrigger_Click">
<cc1:TabPanel ID="tab1" runat="server" HeaderText="tab1">
<ContentTemplate>
<uc:userControlFirst ID="uc1" runat="server" />
<uc:userControlSecond ID="uc2" runat="server"/>
</ContentTemplate>
</cc1:TabPanel>....
</ContentTemplate>
</asp:UpdatePanel>
我們要更新的UpdatePanel每次用戶更改標籤。問題是在uc2控件中,我們有gridbut和linkbuttons來下載報告(.xlsx),因爲uc2在asyncpostback觸發器的控制之內,每次我們點擊linkbutton,updatepanel更新而不是整個頁面,所以我們無法下載報告。
以前當TabContainer的不是asyncpostbactrigger,我們可以註冊GridView控件由回傳控制:
ScriptManager.GetCurrent(Page).RegisterPostBackControl(this.gvInsertionHistory);
但不幸的是它停止工作。
是否有任何方法來註冊這些linkbuttons甚至整個gridview或uc2作爲回發控制,即使他們在asyncpostbackcontrol?
什麼是使用EventName屬性的原因?它設置爲ActiveTabChanged
,但每次點擊tabContainer內的某個內容時,updatepanel都會更新。
我試過在標記中添加uc2作爲PostbackTrigger,但它看起來不可能/不允許。將childrenAsTrigger
設置爲false也沒有幫助。
我將不勝感激任何想法。
嗨,這可能將工作,但我發現更簡單的解決方案。我剛剛在LinkButton上設置了PostbackUrl =「<哪個控件是>的頁面」,並且它會回發,但並未刷新整個頁面。第二個認爲我們已經發現,我們的異步PostScript不是必需的,因爲tabcontainer在updatepanel內。 – Kostrzak 2012-03-07 10:49:10