隐藏/显示的 AsyncFileUpload 控件不会触发服务器端 UploadedComplete 事件 [英] Hidden/Shown AsyncFileUpload Control Doesn't Fire Server-Side UploadedComplete Event
问题描述
我最近在 ASP.Net Ajax 控件工具包的最新版本 (3.0.40412) 中遇到了 AsyncFileUpload 控件.在稍后显示的隐藏控件中使用它时似乎存在问题,例如带有 visible=false
的
示例:
页面代码 -
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="act" %>...<act:ToolkitScriptManager runat="server" ID="ScriptManager1"/><asp:UpdatePanel runat="server" ID="upnlFileUpload"><内容模板><asp:Button runat="server" ID="btnShowUpload" Text="显示上传"/><div runat="server" id="divUpload"visible="false"><act:AsyncFileUpload runat="server" id="ctlFileUpload"/>
</内容模板></asp:UpdatePanel>
服务端代码 -
Protected Sub ctlFileUpload_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) 处理 ctlFileUpload.UploadedComplete结束子Protected Sub btnShowUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) 处理 btnShowUpload.ClickdivUpload.Visible = True结束子
我在 UploadedComplete 事件上有一个断点,但它永远不会触发.但是,如果您从 <div>
中取出 AsyncFileUpload 控件,使其在初始页面呈现时可见,则该控件会按预期工作.
那么,这是 AsynchUploadControl 中的错误,还是我没有掌握基本概念(经常发生)?
首先,确保你的标签具有以下属性 - enctype="multipart/form-data" method="post" 其次,您必须将 AsyncFileUpload 放在可见 DIV 内的不可见 DIV 中.看到这两个线程就可以了.
http://forums.asp.net/t/1489399.aspx
http://forums.asp.net/t/1479689.aspx?PageIndex=2
I recently came across the AsyncFileUpload control in the latest (3.0.40412) release of the ASP.Net Ajax Control Toolkit. There appears to be an issue when using it in a hidden control that is later revealed, such as a <div>
tag with visible=false
.
Example:
Page code -
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="act" %>
.
.
.
<act:ToolkitScriptManager runat="server" ID="ScriptManager1" />
<asp:UpdatePanel runat="server" ID="upnlFileUpload">
<ContentTemplate>
<asp:Button runat="server" ID="btnShowUpload" Text="Show Upload" />
<div runat="server" id="divUpload" visible="false">
<act:AsyncFileUpload runat="server" id="ctlFileUpload" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
Server-side Code -
Protected Sub ctlFileUpload_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles ctlFileUpload.UploadedComplete
End Sub
Protected Sub btnShowUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShowUpload.Click
divUpload.Visible = True
End Sub
I have a breakpoint on the UploadedComplete event but it never fires. However, if you take the AsyncFileUpload control out of the <div>
, making it visible at initial page render, the control works as expected.
So, is this a bug within the AsynchUploadControl, or am I not grasping a fundamental concept (which happens regularly)?
First, make sure your tag has the following attribuytes - enctype="multipart/form-data" method="post" Secondly, you have to have the AsyncFileUpload in an invisible DIV within a visible DIV. See these two threads on it.
http://forums.asp.net/t/1489399.aspx
http://forums.asp.net/t/1479689.aspx?PageIndex=2
这篇关于隐藏/显示的 AsyncFileUpload 控件不会触发服务器端 UploadedComplete 事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!