<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:FileUpload onchange="clickTheButton();" ID="FileUpload1" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" />
</Triggers>
</asp:UpdatePanel>
Кнопка 1 вне панели обновления и JavaScript, который запущен, когда пользователь добавляет, что файл в поле загрузки - это:
function clickTheButton() {
document.getElementById('<%= Button1.ClientID %>').click();
}
Проблема проста. FileUpload1. HasFile == ложь. Я не знаю, почему это, но когда я поместил его в панель обновления, это прекращает работать.
Я видел некоторые другие потоки на этом. Но ни один из них не отвечает, почему это происходит, они просто указывают на вещи, которые можно загрузить.
Править: Действительно моя главная причина для желания сделать это - то, так, чтобы я мог получить a.. Загрузка Файла.. Тег для появления, в то время как клиент загружает на сервер и как только он завершился, отобразите его в datalist. Я просто наклон заставляю UpdateProgress работать.
В основном вам просто нужно сделать вашу кнопку сделать полную информацию, чтобы отправить файл. Также убедитесь, что у вас есть this.form.enctype = "multipart / form-data"; Установите в свой код, или вы можете поместить на эту страницу. AsyncPostbacks не работают с файлами по соображениям безопасности, как уже упоминалось, без взломов. (Я никогда не смог добраться до работы).
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:FileUpload onchange="clickTheButton();" ID="FileUpload1" runat="server" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="Button1" />
</Triggers>
</asp:UpdatePanel>
Для целей безопасности браузеры не позволяют публиковать файлы через JavaScript. Представьте, что сможете ли я написать немного JavaScript для Asynchrone, отправьте содержимое вашей папки документов на мой сервер.
Итак, методы размещения JavaScript-ISH, например, xmlhtttrequest, используемые updatePanel, не будут работать.
Этот пост описывает достойную работу, если вы находитесь на 3.5 SP1. http://geeksswithblogs.net/ranganh/Archive/2009/10/01/fileupload-in-updatepanel-asp.net-iby-gmail.aspx
И этот пост описывает пару оборотов, если вы D предпочитаю не использовать ajaxcontroltoolkit. http://geekswithblogs.net/ranganh/archive/2008/04/01/file-upload-in-updatepanel-asp.net-ajax.aspx