доступ к данным из динамически добавляемого пользовательского элемента управления - PullRequest
0 голосов
/ 28 января 2010

Я пишу систему создания опросов в asp.net. я задал более простой вопрос о наилучшем способе создания элементов управления, которые можно передавать как переменные. Это было проблематично с пользовательскими элементами управления, поэтому мне посоветовали использовать пользовательские элементы управления, и быстрым способом сделать это было наследование от панели управления и просто добавить набор стандартных элементов управления в коллекцию элементов управления, переопределив метод CreateChildControls. Таким образом, я мог создать свои «контрольные» элементы управления, которые в основном являются вопросами в опросе. Затем элементы управления вопросами динамически добавляются на страницу. Все это работает хорошо, но я знаю, что дошел до того, что я хочу попытаться получить значения из этих элементов управления, и я, похоже, потерян в потустороннем мире состояний просмотра и жизненных циклов страниц. Я могу гарантировать, что динамически добавляемые текстовые поля имеют известный идентификатор, однако даже если я добавлю родительский элемент управления в обработчик инициализации страницы, метод CreateChildControls не будет запущен до тех пор, пока не будет загружено состояние представления. Я не могу понять, как получить значения из этих текстовых полей.

Ответы [ 2 ]

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

Вы можете вызвать метод EnsureChildControls в обработчике init вашего элемента управления, чтобы убедиться, что CreateChildControls вызывается до загрузки ViewState.

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

Похоже, вы делаете это нелегко. Значения TextBox не сохраняются в Viewstate, они публикуются в запросе.

Почему вы не используете UserControl здесь? Так ты можешь где-то "пропустить"? что именно ты пытаешься сделать?

...