Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/10: Рейтинг темы: голосов - 10, средняя оценка - 4.50
Настаев
59 / 45 / 1
Регистрация: 15.12.2010
Сообщений: 297
1

Сохранить состояние элемента управления FileUpload

05.05.2011, 18:35. Просмотров 1770. Ответов 5
Метки нет (Все метки)

Я создал на странице элемент FileUpload, чтобы пользователь мог загружать в него свой файл.
После нажатия какой-либо кнопки на форме, этот елемент управления очищается. А мне нужно, чтобы в нём сохранился выбраннный пользователем файл.

Ещё я заметил, что у этого элемента управления есть свойство EnableViewState со значением по умолчанию True. Значит должно сохраняться. Почему у меня не сохраняется, не знаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2011, 18:35
Ответы с готовыми решениями:

Как передать значение или ссылку на элемент управления FileUpload
Представляю код: 1. Объявление переменной и программное добавление на форму:...

Как сохранить состояние класса в yaml формате?
Нужна помощь) Как сохранить состояние класса в формате yaml? Очень много...

Элементы управления, созданные в одном потоке, не могут быть родительскими для элемента управления в другом потоке
Привет :) Есть задача - нужно динамически добавлять компоненты. Все работает...

Выбор элемента управления
Все доброго времени суток! Помогите найти объект который в скрине. Где его...

Программное создание элемента управления
Доброго времени суток! Хотел поинтересоваться, как программно, на языке C#,...

5
***GIN***
30 / 30 / 2
Регистрация: 09.04.2010
Сообщений: 60
06.05.2011, 11:33 2
Видимо твоя страница перезагружается полностью и компонента заново создается. Попробуй использовать Session для хранения состояния. Такое еще бывает при динамическом создании и добавлении контрола на страницу. И проследи порядок загрузки, в какой момент все пропадает. А еще советую установить библиотеку ASP.NET AJAX там есть контрол - AsyncFileUpload - и никакой головной боли не будет. Все на Ajax, асинхронная работа, на выходе у сервера тут же получишь массив байт, который можешь уже где то хранить или как то обрабатывать.
1
Настаев
59 / 45 / 1
Регистрация: 15.12.2010
Сообщений: 297
06.05.2011, 16:28  [ТС] 3
Для начала хочу попробовать Session.
Вот только не знаю как это сделать (FileUpload1.FileContent...????????)

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

Кстати, я проследил за моментом очистки этого элемента управления: сначала выполняется обработчик нажатой кнопки, а в последнюю очередь очищается FileUpload.
Я временно создал обработчик для события FileUpload1.Unload. Хотел найти там Cancel = true, но не нашёл ничего подобного.
0
***GIN***
30 / 30 / 2
Регистрация: 09.04.2010
Сообщений: 60
07.05.2011, 00:38 4
Главная проблема FileUpload что все свойства ReadOnly то есть состояние в Session или в ViewState тебе сохранить не получится, точнее ты сохранить сохранишь, а вот присвоить все это уже обратно не сможешь. Этот контрол используется только для передачи файла клиентом на сервер, а сервер все это получает, но не может установить параметры этому контролу, по этому ты можешь вывести инфу о файле где нибудь рядом, скажем добавь внизу под FileUpload, Lable контрол, и выводи в него название файла, а содержимое файла и его имя храни в сессии. Вот собственно и решение. Либо самому писать свой контрол.
1
Kovy
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
17.07.2013, 11:51 5
Цитата Сообщение от ***GIN*** Посмотреть сообщение
А еще советую установить библиотеку ASP.NET AJAX там есть контрол - AsyncFileUpload - и никакой головной боли не будет. Все на Ajax, асинхронная работа, на выходе у сервера тут же получишь массив байт, который можешь уже где то хранить или как то обрабатывать.
Вот поставил эту библиотеку, использую AsyncFileUpload. Проблема в том, что он, как и кнопка рядом с ним (Загрузить) создаются динамически в коде. При нажатии на кнопку страница перегружается, и как следствие престраивается. В итоге, когда заходит в обработчик кнопки, то в AsyncFileUpload уже пусто. Как это решить? Если сохранить путь файла на компьютере в Сессии, то как потом присвоить обратно? Или как-то сделать, что бы не терял своего значения. ?
0
ansi_str
56 / 56 / 15
Регистрация: 22.09.2011
Сообщений: 316
18.07.2013, 12:03 6
После переотрисовки страницы невозможно заново присвоить значение для FileUpload автоматически
Специально так сделали, ради безопасности.
1
18.07.2013, 12:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2013, 12:03

Добавление элемента управления на страницу
Доброе время! Начал писать первое приложение на ASP.NET и первый ламерский...

Создание собственного элемента управления
Здравствуйте. Сейчас стала задача создать собственный элемент управления для...

Замена. NET WebBrowser элемента управления
Точнее не замена, а поиск другого. Возможно ли добавить элемент управления...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru