Asyncfileupload не работает в webusercontrol - PullRequest
2 голосов
/ 27 августа 2010

У меня проблема с Webusercontrol, который имеет элемент управления asyncfileupload.Мой websusercontrol загружается в элемент управления заполнителя, который оборачивается панелью обновления. В связи с asyncpostback я должен загрузить и очистить элементы управления заполнителя.

Webusercontrol работает безупречно, за исключением asyncfileupload, который не хочетзагрузить на всех.Я могу заверить, что код работает без ошибок, потому что я использовал webusercontrol как сайт * .aspx.

Я предполагаю, что проблема в том, что элемент управления должен быть очищен и перезагружен с каждымasyncpostback?

1 Ответ

2 голосов
/ 01 марта 2011

Я думаю, что проблемы возникают, когда вы помещаете свой элемент управления AsyncFileUpload в динамически загружаемый пользовательский элемент управления.

Мне удалось обойти эту проблему после прочтения этой ссылки

По сути, я поместил фиктивный элемент управления AsyncFileUpload на родительскую страницу .aspx .

например. Default.aspx

    <span style="display:none">
        <asp:AsyncFileUpload ID="DummyAsyncFileUpload" runat="server" />
    </span>

Обратите внимание, что элемент управления AsyncFileUpload скрыт от пользователей, но все еще видим в ASP.NET.

Моя теория такова:

Чтобы загрузить файлы, вы должны опубликовать содержимое вашей формы, используя другой тип кодировки (multipart/form-data).

Когда вы помещаете свой AsyncFileUpload в UpdatePanel, ASP.NET по какой-либо причине вообще не устанавливает тип кодировки и оставляет его пустым.

например. document.forms[0].enctype = ''

Таким образом, когда вы публикуете форму, он не знает, что делать с загрузкой файла.

Помещая фиктивную AsyncFileUpload на страницу Default.aspx, ASP.NET обнаруживает наличие элемента управления FileUpload и соответственно устанавливает тип кодировки.

например. document.forms[0].enctype = 'multipart/form-data'

...