2011-08-24 33 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

谢谢。这是有道理的。 :) –