asp.net AsyncFileUpload - показать список загруженных файлов - PullRequest
0 голосов
/ 26 июля 2011

Я использую ajaxtoolkit AsyncFileUpload и хочу показать список загруженных файлов, последнюю ошибку и обработчик повторителя itemCommand для удаления загруженного файла.

<asp:AsyncFileUpload ID="uploader1" 
    runat="server" 
    OnUploadedComplete="AsyncFileUpload1_UploadComplete"
    OnClientUploadError="uploadError" 
    OnClientUploadStarted="StartUpload"
    OnClientUploadComplete="UploadComplete"
    CompleteBackColor="Lime" 
    UploaderStyle="Modern" 
    ErrorBackColor="Red" 
    UploadingBackColor="#66CCFF"
    ClientIDMode="AutoID" 
    EnableViewState="true" />
<asp:UpdatePanel runat="server">
    <ContentTemplate>
        <asp:Label ID="lblError" runat="server" ForeColor="Red" Visible="false" />
        <asp:Repeater ID="rptAttachments" 
              runat="server" 
              OnItemCommand="Uploader_ItemCommand">
            <ItemTemplate>
             <a href='#'><%#Eval("Filename") %></a>  
             <asp:LinkButton ID="lnkDelete" 
                 runat="server" Text="Удалить"
                 CommandName="DeleteAttachment"
                 CommandArgument='<%#Eval("FileName") %>' 
              /> 
            </ItemTemplate>
        </asp:Repeater>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="uploader1" EventName="UploadedComplete" />
    </Triggers>
</asp:UpdatePanel>







    void AsyncFileUpload1_UploadComplete(object sender, AsyncFileUploadEventArgs e)
        {
           if (e.state == AsyncFileUploadState.Success)
              {

                if (!Facade.Attachment.UploadAttachment(attachment))
                   ShowErrorMessage("File already exists");   
                else
                   BindAttachments();
               }
         }

   void BindAttachments()
        {
            rptAttachments.DataSource = Facade.Attachment.GetAttachments(AttachmentId2);
            rptAttachments.DataBind();
        }

Событие AsyncFileUpload1_UploadComplete вызывает, но ничего не происходит.

1 Ответ

2 голосов
/ 26 июля 2011

Дело в том, что OnUploadedComplete событие асинхронное, и вы не можете вносить какие-либо изменения в страницу.У меня была такая проблема позже и, как вы видите, ответов нет ...
Я нашел обходной путь для себя.Я установил в обработчике куки куки с информацией, которая мне нужна, а затем прочитал ее в функции клиента и выполнил соответствующие действия.
Вы можете попробовать, например, после получения куки на стороне клиента, отправить запрос на обновление страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...