2011-03-28 68 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