我在detailsview中有一个AsyncFileUpload控件。我可以浏览以选择要上传的文件。当我开始上传时,会执行OnClientUploadComplete
函数uploadRoomThumbComplete
方法,但OnUploadedComplete
中的函数从未命中。
为什么?
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DetailsView AutoGenerateRows="False" DefaultMode="Edit" Width="100%" DataKeyNames="id" DataSourceID="odsDetails" ID="dvOfferDetails" runat="server">
<Fields>
<asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderStyle-VerticalAlign="Bottom" HeaderText="<%$Resources:Glossary,image%>">
<EditItemTemplate>
<asp:literal ID="ltImage" runat="server" />
<p id="RoomContainer">
</p>
<asp:literal ID="ltDeleteRoomThumb" runat="server" />
<cc1:AsyncFileUpload CssClass="imageUploaderField" ID="afuRoomThumb" Width="150" runat="server" ClientIDMode="AutoID" OnUploadedComplete="afuRoomThumb_UploadedComplete" OnClientUploadComplete="uploadRoomThumbComplete" />
</EditItemTemplate>
</asp:TemplateField>
</Fields>
</ContentTemplate>
</asp:UpdatePanel>
Protected Sub afuRoomThumb_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs)
'---> this codeblock is NEVER hit....why?
End Sub
好的,我在这里找到了答案:http://forums.asp.net/t/1477331.aspx?AsyncFileUpload+内部+a+GridView+内部+a+UpdatePanel
简而言之:在页面上放置另一个AsyncFileUpload控件,并设置样式的显示:none。
AsyncFileUpload似乎被设计为在一个页面上只使用一次,当你把它放在主页面上时,更新面板中的任何afu都会起作用。