2011-07-26 7 views
0

나는 ajaxtoolkit AsyncFileUpload를 사용하여 업로드 된 파일 목록, 마지막 오류 및 리피터 itemCommand를 처리하여 업로드 된 파일을 삭제하고 싶습니다.asp.net AsyncFileUpload - 업로드 된 파일 목록 표시

<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가 발생하지만 아무 일도 발생하지 않습니다.

답변

2

문제는 OnUploadedComplete입니다. 이벤트는 비동기식이므로 페이지를 변경할 수 없습니다. 나는 such problem later을 보았습니다. 대답은 없습니다 ...
나를위한 해결책을 찾았습니다. 서버 처리기에서 정보가 필요한 쿠키를 설정하고 필요한 정보를 클라이언트 함수에서 읽고 적절한 조치를 취합니다.
예를 들어 클라이언트 측에서 쿠키를 가져온 후 페이지 새로 고침 요청을 보내보십시오.

+0

나는 똑같은 문제가 있으며 여기에 답을 얻지 못했습니다. 세션을 사용하고 싶지는 않지만. –