Сохранить значение в элементе управления Fileupload в asp.net, C # - PullRequest
2 голосов
/ 08 января 2010

Я использую Fileupload и 3 раскрывающихся элемента управления на панели обновлений, 3 раскрывающихся списка будут опубликованы при выпадающем списке выбранного события изменения индекса (т. Е. Как Страна, штаты и город ... получить значение из БД по стране, штатам и городу) )

ПРОБЛЕМА ЕСТЬ

Во время обратной передачи путь к имени файла отсутствует в элементе управления загрузкой файлов (как ожидалось, или в свойстве по умолчанию).

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

Как мне сохранить это значение или есть ли способ решить эту проблему.

Существует ли элемент управления ajax для загрузки файла или какие-либо бесплатные элементы управления, которые также сохраняют значение после обратной передачи ...?

Или можно установить значение для управления загрузкой файлов во время обратной передачи?

Заранее спасибо

Ответы [ 4 ]

2 голосов
/ 08 января 2010

Вы можете попытаться сохранить значение загрузки файла в скрытом поле между асинхронными постбеками, используя обработчики событий asp.net ajax.

Sys.WebForms.PageRequestManager.instance.add_beginRequest(BeginRequestHandler)
Sys.WebForms.PageRequestManager.instance.add_endRequest(EndRequestHandler)

function BeginRequestHandler(sender, args) {
  var fileUpload = document.getElementById('fileUpload');
  var hiddenUpload = document.getElementById('hiddenUpload');
  hiddenUpload.value = fileUpload.value;
}

function EndRequestHandler(sender, args) {
  var fileUpload = document.getElementById('fileUpload');
  var hiddenUpload = document.getElementById('hiddenUpload');
  fileUpload.value = hiddenUpload.value;
}
1 голос
/ 08 января 2010

При обратной записи вы можете скрыть элемент управления FileUpload и показать литерал, который отображает значение файла.

Затем, если пользователь хочет изменить загруженный файл, попросите его нажать кнопку и снова отобразить элемент управления FileUpload.

Вот как это делает gmail.

0 голосов
/ 08 января 2010

Вы можете обернуть выпадающие списки в их собственную панель обновлений (либо отдельную панель, либо вложенную панель).

Это аккуратно обошло бы проблему, потому что только панель с выпадающими списками будет перерисована при запуске их событий.

Возможно, вам придется контролировать, какие триггеры вызывают какие виды обратной передачи для панелей, и вам, возможно, придется установить режим обновления на условный и вручную управлять при каждом обновлении панели.Это зависит от того, как у вас устроена страница и все такое.Хотя в большинстве случаев вам не нужно делать ничего особенного при использовании нескольких панелей.

0 голосов
/ 08 января 2010

FileUpload предоставляет свойство для имени файла. Просто кешируй.

UploadedFile.FileName или что-то вроде этого

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