ASP.NET сохранить файл загрузки после обратной передачи - PullRequest
0 голосов
/ 13 июля 2010

Я пишу страницу ASP.NET в интрасети, используя VB.NET. Я столкнулся с особенно неприятной проблемой, связанной с обработкой загрузки файлов. Я сделаю все возможное, чтобы объяснить проблему, и, возможно, кто-то может помочь.

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

Вот ситуация:

Джо В. Dataentry вводит некоторые данные в несколько полей. Первые 3 выпадающих, и когда он меняет выбор, запускается событие обратной передачи, которое запрашивает базу данных для допустимых записей для других вариантов выбора. После выбора значений он вводит некоторые другие данные, выбирает файл для сопровождения данных и нажимает кнопку «Обновить». Когда он нажимает кнопку, он запускает событие обратной передачи, которое отправляет текущие данные на сервер для проверки. Данные создадут изменение в базе данных, поэтому ему представляется представление о текущем состоянии и о том, как оно будет выглядеть при внесении его изменений. Теперь он может подтвердить или отменить операцию по любой причине.

Часть данных, которые он увидит, включает в себя расширение файла, который может быть PDF-файлом или также может быть файлом изображения или другим документом.

Теперь вот где моя проблема - при каждом событии обратной передачи диалог загрузки файла очищается. Я пытался обойти это, создав временный файл при первой обратной передаче, а затем переименовав его, если он нажал «ОК», или удалил «Отмена» ... но мне нужно сделать множество вещей, основываясь на предыдущем состоянии данных и имени файла. Я пытался сохранить некоторые переменные сеанса, чтобы сохранить имя файла, и это работает нормально только для переименования файла, но для того, что мне нужно сделать, это становится громоздким.

То, что я хочу сделать, это иметь возможность иметь событие обратной передачи для представления изменений, и затем , когда пользователь нажимает «ОК», отправить файл. Есть ли какой-нибудь возможный способ сделать это?

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

Спасибо за любую помощь и читая мою немного запутанную историю / ситуацию!


EDIT:

Похоже, что я хочу, чтобы определенная кнопка не запускала полный постбэк. Есть ли способ сделать это?

РЕДАКТИРОВАТЬ II:

У меня уже есть панель обновлений на странице - есть ли способ для кнопки только опубликовать, что находится на панели обновлений?

1 Ответ

2 голосов
/ 13 июля 2010

Что вы, возможно, захотите сделать, - это разместить выпадающие списки внутри ASP.NET AJAX UpdatePanel и не допускать к этому контроль загрузки файлов.

Ваша панель обновлений выполнит постбэк и позволит вашей логике проверки произойти без отправки файла, тогда, когда вы нажмете свою последнюю кнопку «Сохранить» (которая также находится за пределами вашей UpdatePanel), вся форма будетотправлено обратно, и вы можете работать со своим файлом.

...