Скрытый / показанный элемент управления AsyncFileUpload не запускает событие UploadedComplete на стороне сервера - PullRequest
2 голосов
/ 27 мая 2010

Недавно я столкнулся с элементом управления AsyncFileUpload в последней (3.0.40412) версии ASP.Net Ajax Control Toolkit. Кажется, есть проблема при использовании его в скрытом элементе управления, который раскрывается позже, например, тег <div> с visible=false.

Пример:

Код страницы -

<%@ 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>

Код на стороне сервера -

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

У меня есть точка останова на событии UploadedComplete, но она никогда не срабатывает. Однако, если вы возьмете элемент управления AsyncFileUpload из <div>, сделав его видимым при начальной визуализации страницы, этот элемент управления будет работать как положено.

Итак, это ошибка в AsynchUploadControl или я не понимаю фундаментальную концепцию (которая происходит регулярно)?

1 Ответ

3 голосов
/ 27 мая 2010

Во-первых, убедитесь, что у вашего тега есть следующие атрибуты - 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

...