Чистый способ предложить этап проверки в форме ASP.NET - PullRequest
2 голосов
/ 27 января 2009

В настоящее время я работаю над довольно сложной формой ввода данных, основанной на ASP.NET Web Forms. После заполнения формы мы хотели бы предложить пользователю возможность просмотреть свои входные данные перед фактической отправкой формы (а также вернуться, чтобы внести изменения в свои данные, если потребуется).

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

В настоящее время мой текущий подход использует ObjectDataSource для связывания всех полей формы. Я создал два «режима» работы с источником данных; один режим временно сохраняет объект в пользовательском сеансе (что позволяет снова получать данные позднее для режимов только для чтения / редактирования - это облегчает функциональность просмотра / изменения), тогда как второй режим фактически выполняет вставку базы данных.

Хотя на данный момент это кажется достаточно надежным, для меня это все еще кажется довольно грязным. Я знаю, что мог бы использовать подход типа Wizard / Multiview, но тогда вы теряете тонкости автоматического связывания данных (я верю?). Я уверен, что это довольно распространенная проблема, так как это обычно делается в среде веб-форм?

Спасибо!

1 Ответ

3 голосов
/ 27 января 2009

В проекте, над которым я сейчас работаю, используется пользовательская настройка мастера (не мастера asp.net 2.0). Он состоит из нескольких шагов, которые может потребоваться вашему мастеру, и когда вы переходите от одного шага к следующему, код сохраняет значения на заключительном этапе (обзор только для чтения). Когда пользователь переходит к последнему шагу, он может вернуться к шагу, который необходимо обновить. Когда все в порядке, пользователь отправляет мастер, и данные сохраняются в БД. Это в основном серия панелей с переключаемой видимостью.

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

У кого-нибудь есть еще идеи?

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