我正在使用UpdatePanel,我的提交按钮是触发器之一以及清除按钮。但问题是我在div中有一个FileUpload控件。这是一个模态弹出窗口,因此它显示一个表单供用户上传一个小音符。当我尝试使用AsyncPostBackTrigger上传文件时,它什么也没做(我已经读过)。我的问题是如何不使用PostBackTrigger,因为我想使用asyncpostbacktrigger,因为如果发生错误,则Modal弹出窗口关闭,用户不知道文件是否已上传。我该怎么办?
代码:
<asp:Panel ID="addnotepanel" runat="server" style="/*display:none;*/" CssClass="addnotepanel">
<asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
<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" />
<asp:Button ID="CnlBtn" runat="server" Text="Cancel" onclick="CnlBtn_Click" />
<asp:Button ID="ClrBtn" runat="server" onclick="ClrBtn_Click"
Text="Clear" />
</div></asp:Panel>
答案 0 :(得分:0)
将SubmitBtn保留为PostBackTrigger,但不要将其设置为modalpopupextender的“OkControlID”。
,如果上传完成,则调用 yourModalpopupextenderID .hide(),这样只有在没有错误时,Modal弹出才会关闭。 击>
您可以使用AjaxControlToolkit中的AsyncFileUpload 这里,作为一个例子来说明如何使用它:
<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)
这是我在我的情况下使用它的方式,但你会发现很多关于它如何工作的例子