Доступ к данным POST из пользовательского элемента управления ASCX на родительской странице - PullRequest
2 голосов
/ 01 ноября 2011

У меня есть страница ASP.NET (WebForm), на которой я устанавливаю содержимое центрального DIV с помощью динамически загрузки одного из пяти пользовательских элементов управления в течение Page_Load, в зависимости от стадии приложения.

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

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

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

РЕДАКТИРОВАТЬ: Чтобы уточнить, я хочу опубликовать страницу обратно к себе, чтобы захватить значения из элементов формы через объект запроса, сохранить их в базе данных, а затем отобразить подтверждающее сообщение (или что-то еще) на обратной передаче, а не повторно отображать тот же элемент управления снова. Поэтому я больше не буду загружать тот же пользовательский элемент управления.

Может кто-нибудь помочь с этим, пожалуйста?

Ответы [ 3 ]

2 голосов
/ 01 ноября 2011

Динамические элементы управления должны быть добавлены на PreInit и добавлены обратно на каждую обратную передачу, чтобы отображаться на стороне сервера.

Обзор жизненного цикла страницы ASP.NET

0 голосов
/ 02 ноября 2011

ОК, мой плохой. Я полностью забыл, что переключатели и флажки не публикуют ничего, если они не выбраны. Я знал это, но просто забыл это. Черт возьми, что HTML! Спасибо всем за помощь.

0 голосов
/ 01 ноября 2011

Если вы используете Page.LoadControl для динамической загрузки пользовательских элементов управления, вы сможете сделать что-то подобное.

Dim strTextboxTextValue As String = CType(CType(YourPlaceHolder.FindControl("YourUserControlId"), UserControl).FindControl("YourTextBoxID"), TextBox).Text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...