2011-08-24 53 views
2

解僱我有改變的內容,然後調用updatepanel.update()來異步更新頁面的那一段一個UpdatePanel,但它不會出現火從更新()的代碼隱藏(即異步回發不會發生,並且不顯示更新的內容updatepanel.update()不出現,從代碼隱藏

以下的ScriptManager是在母版:。

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePartialRendering="true" ></asp:ToolkitScriptManager> 

有問題的頁面有如下更新面板:

<asp:UpdatePanel ID="upImageConfirm" runat="server" UpdateMode="always"> 
    <ContentTemplate> 
     <div id="imageContainer"> 
      <asp:label ID="lblCheckPackshot" runat="server" Text="None" /> 
      <asp:button ID="btnLoadPackshot" runat="server" OnClick="uploadPackShot" Text="Upload &raquo;" /> 
     </div> 
    </ContentTemplate> 
</asp:UpdatePanel> 

下面的代碼隱藏是拉開序幕,並在文件上傳完成後運行(在調試這個代碼並運行,並不會更改值檢查,但更新將不會觸發:

protected void uploadComplete(object sender, jaxControlToolkit.AsyncFileUploadEventArgs e) 
{ 
try 
{ 
      //upload file to web file system 
      if (afuStockImport.HasFile) 
      { 
       string strPath = Server.MapPath("~/graphics/holding/") + Path.GetFileName(afuStockImport.PostedFile.FileName); 
       Session["uploadedFileName"] = afuStockImport.PostedFile.FileName; 
       afuStockImport.SaveAs(strPath); 

       //Show on page for confirmation 
       lblCheckPackshot.Text = "<img src=\"/graphics/holding/" + Path.GetFileName(afuStockImport.PostedFile.FileName) + "\" />"; 
       upImageConfirm.Update(); 
      } 
     } 
} 

謝謝!

+1

哪裏代碼指定uploadComplete應在更新之後被解僱? –

+0

我從ASP.NET AJAX工具包使用AsyncFileUpload,因此它被連接到該控件。它會觸發 - 當我在調試模式下運行它時,它會遍歷該方法甚至更新()調用,但更新不會發生。 –

回答

1

這是來自ASP.NET AJAX Toolkit的AsyncFileUpload行爲。問題是AsyncFileUpload使用iframe來處理異步上傳,所以引發uploadComplete事件和客戶端頁面的「頁面」沒有像往常一樣鏈接。

解決方法是使用OnClientUploadComplete事件觸發使用javascript的異步回滾,然後更新您的更新面板。還有很多其他的方式,some are not using an update panel

+0

謝謝。這是有道理的。 :) –