FileUploadControl и UpdatePanel

Если положить FileUploadControl в UpdatePanel то мы получим неприятную проблему: при попытке отправить файл на сервер данные до обработчика события не доходят.

То есть FileUpload.HasFile = false. Каким же образом реализовать загрузку файлов без перезагрузки всей страницы?

На большинство форумов предлагают использовать IFrame в котором лежит отдельная страница с FileUploadControl.

Но я хочу показать гораздо менее распространенное но, по моему мнению, более красивое решение.

Чтобы исправить ситуацию делаем следующее:

— добавляем в тег <form> такой атрибут

<form id="form1" runat="server" enctype="multipart/form-data">

добавляем на страницу, на которой находится FileUploadControl вот это (предположим, что отправка файла производится нажатием кнопки с идентификатором btnUpload)

protected override void OnInit(EventArgs e){     ScriptManager manager = ScriptManager.GetCurrent(Page);    if (manager != null)    {        manager.RegisterPostBackControl(btnUpload);                    }     base.OnInit(e);}

Это все 🙂

Данное решение уже больше года работает в одном из моих проектов и хорошо себя зарекомендовало.

FileUploadControl и UpdatePanel: 1 комментарий

  1. SanSYS

    Решение конечно боян, но у мну работает и без enctype="multipart/form-data", т.е. я просто регистрирую постбек контрол и все

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *