2011-12-04 2 views
2

jquery 모달 팝업에 AsyncFileUpload 컨트롤을 배치 했으므로 업로드 할 때 "AsyncFileUpload1_UploadedComplete"를 실행할 수 없습니다.asyncfileupload jquery 모달 팝업

페이지에 직접 놓으면 효과가 있습니다.

와 관계있는 코드를 내가 직접 masterpage에 배치 할 때 작업을 수행 말처럼

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc2" %> 

    <script type="text/javascript" language="javascript"> 

    function uploadError(sender, args) { 
     alert(args.get_errorMessage()); 
     document.getElementById('<%=lblStatus.clientid %>').innerText = args.get_fileName(), "<span style='color:red;'>" + args.get_errorMessage() + "</span>"; 
    } 

    function StartUpload(sender, args) { 
     document.getElementById('<%=lblStatus.clientid %>').innerText = 'Uploading Started.'; 
    } 

    function UploadComplete(sender, args) { 
     var filename = args.get_fileName(); 
     var contentType = args.get_contentType(); 
     var text = filename + " has been uploaded successfully. Size: " + args.get_length() + " bytes"; 
     document.getElementById('<%=lblStatus.clientid %>').innerText = text; 
    } 

</script> 

     <cc2:AsyncFileUpload ClientIDMode="AutoID" ID="AsyncFileUpload1" runat="server" OnClientUploadError="uploadError" 
        OnClientUploadStarted="StartUpload" OnClientUploadComplete="UploadComplete" CompleteBackColor="Lime" 
        UploaderStyle="traditional" ErrorBackColor="Red" ThrobberID="Throbber" OnUploadedComplete="AsyncFileUpload1_UploadedComplete" 
        UploadingBackColor="#66CCFF" /> 
       <asp:Label ID="Throbber" runat="server" Style="display: none"> 
          <img src="images/icons/ajax-loader.gif" style="vertical-align:middle" alt="loading" /> 
       </asp:Label>&nbsp; 
       <asp:Label ID="lblStatus" runat="server" Style="font-family: Arial; font-size: small;"></asp:Label> 

입니다 (이 방법에 의해 masterpage에 전부입니다)하지만이 될 것입니다 사업부로 배치 할 때 작동하지 않습니다 모달 팝업. 내가 BTW 뒤에

<form id="Form1" runat="server" enctype="multipart/form-data" method="post"> 

코드 설정되지 않은 : 양식 태그에

Protected Sub AsyncFileUpload1_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) 
    If AsyncFileUpload1.HasFile Then 
     txtRef.Text = "1234" 
     If IO.Directory.Exists(Server.MapPath("~\uploads\" & txtRef.Text)) = False Then 
      IO.Directory.CreateDirectory(Server.MapPath("~\uploads\" & txtRef.Text)) 
     End If 
     Dim strPath As String = MapPath("~/Uploads/" & txtRef.Text & "/") & IO.Path.GetFileName(e.FileName) 
     AsyncFileUpload1.SaveAs(strPath) 
     Dim attach As New attachment 
     attach.CallID = txtRef.Text 
     attach.Filename = IO.Path.GetFileName(e.filename) 
     attach.Ext = System.IO.Path.GetExtension(e.filename) 
     attach.UserID = Session("user_id") 
     attach.Create() 
    End If 
End Sub 

을하지만 여전히 운이 내가 최근에 ajaxtoolkit을 업그레이드했다.

아이디어가 있으십니까?

감사합니다,

답변

2

jQuery를 폼에서 컨트롤을 제거하고 대화 상자를 만들 때 신체의 끝 부분을두고 있기 때문에이 발생합니다. 양식을 제출할 때 AsyncFileUpload 컨트롤은 더 이상 양식에 없으므로이 컨트롤에 대해 서버에 다시 게시 할 내용이 없으므로 파일을 다시 게시하지 않습니다. jQuery가 생성 한 후에 대화 상자 div를 양식에 다시 넣으면됩니다.

 $('#yourDialogID').parent().appendTo('form');