2011-03-28 66 views
1

我正在使用UpdatePanel,並且我的提交按鈕是觸發器以及清除按鈕之一。但問題是我在div中有一個FileUpload控件。這是一個模式彈出窗口,因此它顯示一個用戶上傳小記事的表單。當我嘗試使用AsyncPostBackTrigger上傳文件時,它什麼都不做(我已經閱讀過)。我的問題是如何不使用PostBackTrigger,因爲我想使用asyncpostbacktrigger,因爲如果發生錯誤,那麼模式彈出窗口關閉,用戶不知道文件是否上傳。我能做什麼?ModalPopup上的AsyncPostBack FileUpload

代碼:

<asp:Panel ID="addnotepanel" runat="server" style="/*display:none;*/" CssClass="addnotepanel"> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate> 
      <asp:FileUpload ID="FileUpload1" runat="server" /> 
     &nbsp;<br /> 
     </ContentTemplate> 
     <Triggers> 
       <asp:AsyncPostBackTrigger ControlID="ClrBtn" /> 
       <asp:PostBackTrigger ControlID="SubmitBtn" /> 
       </Triggers> 
      </asp:UpdatePanel> 
        File: 

      <br /> 
      <asp:Label ID="ErrorLabel" runat="server" Visible="False"></asp:Label> 
      <br /> 
      <asp:Button ID="Submitbtn" runat="server" Text="Submit" 
       onclick="Submitbtn_Click" /> 
&nbsp;<asp:Button ID="CnlBtn" runat="server" Text="Cancel" onclick="CnlBtn_Click" /> 
      &nbsp;<asp:Button ID="ClrBtn" runat="server" onclick="ClrBtn_Click" 
       Text="Clear" /> 
&nbsp; </div></asp:Panel> 

回答

0

保持SubmitBtn作爲PostBackTrigger但不要將其設置爲在modalpopupextender的 「OkControlID」。

在Submitbtn_Click服務器端子,請調用 yourModalpopupextenderID .hide()如果上傳完成,只有在沒有錯誤的情況下彈出窗口才會關閉。

你可以使用一個AsyncFileUpload從AjaxControlToolkit 這裏,作爲爲例一些代碼來顯示如何使用它:

<AjaxControlToolkit:AsyncFileUpload ID="AttachementsFileUpload" 
                runat="server" 
                OnUploadedComplete="AttachementsFileUpload_UploadedComplete" 
                OnClientUploadComplete="uploadComplete" /> 



<script type="text/javascript"> 
     var UpdateAttachementsGridViewButton = '<%= UpdateAttachementsGridViewButton.ClientID %>'; 
     function uploadComplete(sender, args) { 
      $get(UpdateAttachementsGridViewButton).click(); 

     } 
    </script> 

正如你看到的,上傳完成後,我使用Javascript來觸發點擊一個隱藏的按鈕。同時,我用這樣的檢索在AttachementsFileUpload_UploadedComplete文件:

Dim AttachementsFileUpload As AjaxControlToolkit.AsyncFileUpload = AnnouncementFormView.FindControl("AttachementsFileUpload") 
    Attachements.add(e.filename, AttachementsFileUpload.FileBytes) 

這就是我在我的情況下使用它,但你會發現很多的例子它是如何工作的

+0

我的代碼爲我的模態是' '但它仍然關閉模式彈出窗口。 – atrljoe 2011-03-29 13:11:39

+0

@atrljoe我糾正了我的答案。 – DavRob60 2011-03-29 13:31:45