2012-04-03 32 views
2

Verwendet einen AJAX Async File Upload, um ein Benutzerbild hinzuzufügen. Ich möchte, dass das Bild aktualisiert wird, sobald der Async-Upload abgeschlossen ist. Ich benutze upImage.Update() im Code dahinter, aber es scheint das Update nicht zu tun.UpdatePanel wird nicht aktualisiert

Der gesamte Code läuft ohne Fehler und es gibt keine Fehler in der JS-Konsole. Jede Hilfe wäre willkommen! Vielen Dank.

Die aspx-Datei:

<h2>That's You 
     <ajax:AsyncFileUpload ID="afuUserImage" runat="server" 
      OnUploadedComplete="uploadComplete" 
      UploadedFileError="uploadError"    
      Width="200px" 
      UploadingBackColor="#b9b9b9" 
      CompleteBackColor="#00FF00" 
      ErrorBackColor="#FF0000" 
      ThrobberID="theLoader" 
      ClientIDMode="AutoID" 
      CssClass="" /> 
    </h2> 
    <div id="userSettingsImage" runat="server" class="userSettingsImage"> 
     <asp:updatepanel ID="upImage" runat="server" UpdateMode="conditional" ChildrenAsTriggers="false" > 
      <ContentTemplate> 
       <asp:Image ID="imgUser" runat="server" ImageUrl="~/graphics/blankuser.jpg" /> 
      </ContentTemplate> 
     </asp:updatepanel>  
    </div> 

Und die hinter Code ....

protected void uploadComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e) 
    { 
     try 
     { 
      // change photo in space and upload to user photo 
      if (afuUserImage.HasFile) 
      { 

       string strPath = Server.MapPath("~/users/" + this.Context.User.Identity.Name + "/userimages/" + this.Context.User.Identity.Name + ".jpg"); 
       if (File.Exists(strPath)) 
       { 
        File.Delete(strPath); 
       } 
       afuUserImage.SaveAs(strPath); 
       imgUser.ImageUrl = imgUser.ImageUrl + "?new" + String.Format("{0:ddMMyyyy}", DateTime.Now); 
       upImage.Update(); 
       Lifeklips_Global.eComms.showMessage("All done!"); 
      } 
      else 
      { 
       Lifeklips_Global.eComms.showMessage("Oops! This is embarrassing. Your update didn't work, but we're looking into it. Give it another go.");      
      } 

     } 
     catch (Exception ex) 
     { 
      Lifeklips_Global.errorProcess.logError("Error uploading file: " + ex.Message, "Lifeklips.UserControls.singlephotouploader:uploadComplete"); 
     } 
    } 
+0

mögliches Duplikat von [Image-Tag wird nicht im UpdatePanel aktualisiert] (http://StackOverflow.com/questions/9995399/Image-Tag-Not-Updating-inside-the-updatepannel) – Pankaj

Antwort

0

Sieht aus wie Sie die falsche ImageUrl bekam

imgUser.ImageUrl = imgUser.ImageUrl + "?new" + String.Format("{0:ddMMyyyy}", DateTime.Now); 

sein sollte

imgUser.ImageUrl = "~/users/" + this.Context.User.Identity.Name + "/userimages/" + this.Context.User.Identity.Name + ".jpg?new" + String.Format("{0:ddMMyyyy}", DateTime.Now); 
+0

Das ist, was es mit dem imgUser verwenden wird .ImageURL –

+0

es sieht aus wie anfangs ~/graphics/blankuser.jpg –