Hola,
Estoy utilizando el control AsyncFileUpload del Ajax Control ToolKit. Lo principal me lo hace bien, me sube al archivo al servidor sin hacer postback pero me gustaría que ademas una vez subido se muestre la imagen en un control imagen y muestre un mensaje en un label pero no consigo que se actualice.
Código:
<asp:UpdatePanel ID="upAvatar" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:AsyncFileUpload ID="AsyncFileUpload1" onuploadedcomplete="AsyncFileUpload1_UploadedComplete" runat="server" />
<asp:Label ID="lblInformacion" runat="server" Text="Puede selecionar o cambiar el avatar luego en el menu de usuario. Solo archivos .jpg o .gif"></asp:Label>
<br />
<asp:Image ID="imgAvatar" runat="server" ViewStateMode="Enabled" Height="150px" Width="150px" Visible="False" />
</ContentTemplate>
</asp:UpdatePanel>
Código:
Protected Sub AsyncFileUpload1_UploadedComplete(sender As Object, e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles AsyncFileUpload1.UploadedComplete
Dim filename As String = System.IO.Path.GetFileName(AsyncFileUpload1.FileName)
If AsyncFileUpload1.PostedFile.FileName = "" Then
lblInformacion.Text = "Sin archivo seleccionado"
imgAvatar.Visible = False
Else
Dim serverFileName As String = Path.GetFileName(AsyncFileUpload1.PostedFile.FileName)
Dim fullUploadPath As String = Path.Combine(uploadDirectory, serverFileName)
Dim extension As String = Path.GetExtension(Me.AsyncFileUpload1.PostedFile.FileName)
Select Case extension.ToLower()
Case ".gif", ".jpg"
lblInformacion.Text = "Extension " & extension & " valida"
If SubirArchivo(serverFileName, fullUploadPath) Then
'mostramos imagen si se a subido bien
imgAvatar.ImageUrl = "~/TmpUploads/" & serverFileName
imgAvatar.Visible = True
End If
Case Else
lblInformacion.Text = "Extension " & extension & "no valida, solo .jpg o .gif (Subir un avatar es opcional)"
End Select
End If
upAvatar.Update()
End Sub
He probado también de poner el AsyncFileUpload1 fuera del updatepanel: pero tampoco me funciona
Código:
<asp:AsyncFileUpload ID="AsyncFileUpload1" onuploadedcomplete="AsyncFileUpload1_UploadedComplete" runat="server" />
<asp:UpdatePanel ID="upAvatar" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblInformacion" runat="server" Text="Puede selecionar o cambiar el avatar luego en el menu de usuario. Solo archivos .jpg o .gif"></asp:Label>
<br />
<asp:Image ID="imgAvatar" runat="server" ViewStateMode="Enabled" Height="150px" Width="150px" Visible="False" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="AsyncFileUpload1" EventName="UploadedComplete"/>
</Triggers>
</asp:UpdatePanel>