Problem with partial-page refresh with AJAX AsyncFileUpload in VB.NET
I am trying to use AJAX AsyncFileUpload to upload image files to the server. When the image file is uploaded, I want it to immediately appear on the page.
My image to refresh is called "frenchlogo". When the upload event fires, it calls a subroutine AsyncFileUpload2_UploadedComplete which checks and saves the file, and updates the source of the image (frenchlogo.ImageUrl).
The Asyncfileupload and image are in the same Updatepanel.
What am I doing wrong ?
Thanks, Peter
Protected Sub AsyncFileUpload2_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs)If AsyncFileUpload2.HasFile then ' Determine new file name fileExtension = System.IO.Path.GetExtension(AsyncFileUpload2.Filename).ToLower() newfilename = "flogo-" & Session("sponsor") & fileExtension FolderToSave = Server.MapPath("\") & "Userdata\L-" & Trim(Session("Leaguenum")) & "\Advertisement\" ' Validate file is of correct type fileOK = False Dim allowedExtensions As String() = {".jpg", ".jpeg", ".png", ".gif"} For i As Integer = 0 To allowedExtensions.Length - 1 If fileExtension = allowedExtensions(i) Then fileOK = True End If Next ' Save the file If fileOK Then Try AsyncFileUpload2.PostedFile.SaveAs(trim(FolderToSave & newfilename)) Outputmessage = "File uploaded!" Catch ex As Exception Outputmessage = "File could not be uploaded." End Try Else Outputmessage = "Cannot accept files of this type." End If ' Update database entry to indicate new banner name cmd.Connection = MyConn cmd.Connection.Open() cmd.CommandText = "Update sponsors set sponsorlogofr = '" & newfilename & "' where sponsorid = " & Session("sponsor") cmd.ExecuteNonQuery() cmd.Connection.Close() ' Display the output message upload2Label.Text = Outputmessage End iffrenchlogo.ImageUrl = Foldertosave & newfilenameShowfrenchlogoimages.Visible = "true"End Sub<asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Panel ID="Showfrenchlogoupload" runat="server"> <tr> <td style="padding-left: 15px"> <ajaxToolkit:AsyncFileUpload runat="server" ID="AsyncFileUpload2" Width="400px" UploaderStyle="Modern" UploadingBackColor="#CCFFFF" ThrobberID="Throbber2" OnUploadedComplete="AsyncFileUpload2_UploadedComplete" /> <asp:Label runat="server" ID="Throbber2" Style="display: none;"> <img align="absmiddle" alt="" src="~/images/ajax-loader.gif" /> </asp:Label> <br /><asp:Label id="upload2Label" runat="server" /> </td> </tr> </asp:Panel> <asp:Panel ID="Showfrenchlogoimages" runat="server"> <tr> <td align="center"> <asp:Image ID="frenchlogo" runat="server" /> </td> </tr> <tr> <td> <asp:Button ID="Button4" Text="Change Logo" runat="server" OnCommand="ChangeAd" CommandName="frenchlogo" /> </td> </tr> </asp:Panel> </ContentTemplate></asp:UpdatePanel>
It took me a couple of days to figure out how to translate to VB, but it seems to be working now.
Thanks, Peter