簡體   English   中英

當按鈕執行代碼在更新面板之外時,如何使用更新面板內部的更新進度

[英]How to use update progress inside update panel, when the button executing code is outside update panel

我有一個更新面板,里面有更新進度。 我將按鈕移到了更新面板之外,因為當我將按鈕放在更新面板中時,response.write無法正常工作。 現在,將按鈕移到response.write外部之后,更新正常。 外面有按鈕時,如何使它工作。

 <asp:UpdateProgress ID="UpdateProgress2" runat="server">     
 <ProgressTemplate>      
  <div style="width: 338px; position: relative; top: -420px; left: 80px" class="">          <b>Please Wait...</b>        
    <img runat="server" id="ajaxLoader" style="background-color: White; width: 338px;"                                 src="styles/images/loadImage.gif" alt="loading" />     
    </div>          </ProgressTemplate>         </asp:UpdateProgress>            
      </ContentTemplate>     </asp:UpdatePanel>     
      <asp:Button ID="btn_upload"  runat="server" Text="Upload"                             OnClick="upload_Click" /> 

將觸發器用於更新面板

<asp:UpdatePanel>

.... content ... 

    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btn_upload" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>

1.) Response.Write在設計上無法在UpdatePanel內部工作(請參閱此處的原因: https : //stackoverflow.com/a/3878111/1288619 )-默認情況下, UpdatePanel由其所有子控件自動觸發。

2.)將按鈕放置在按鈕外部時,將觸發完整的回發,而不是UpdatePanel的部分呈現-因此沒有更新進度。

當您僅將按鈕注冊為AsyncPostBackTrigger (無論它在哪里)-您會得到與第一種情況完全相同的情況。

如果將按鈕注冊為(Full) PostBackTrigger ,或將UpdatePanel的呈現設置為有條件的,而不是由其子項觸發的-那么您將獲得與第二種情況完全相同的情況。

因此,按照alexsuslin的建議,只需將UpdatePanel中某些Literal控件的text屬性更改為您要在Response.Write放置的內容(然后將按鈕的visible屬性設置為false,如果您不想再顯示它-則請注冊作為AsyncPostBackTrigger如果移到外部)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM