Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/08/2013, 03:49
jferri
 
Fecha de Ingreso: junio-2010
Mensajes: 3
Antigüedad: 13 años, 11 meses
Puntos: 0
Refrescar imagen con update panel

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>