powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Динамическое создание контролов - проблема
4 сообщений из 4, страница 1 из 1
Динамическое создание контролов - проблема
    #33820612
NickSumyatin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В методе Page_Load я создаю динамически textbox(при помощи PlaceHolder).По нажатию книпки мне необходимо получить его текст.Но, когда я нажимаю на свою кнопку, опять вызывается Page_Load и мой динамически созданный контрол исчизает — при повторном вызове Page_Load я 2 раз текстбох не создаю. Вопрос у меня следующий — как мне всётаки получить его свойства, если Page_Load вызывается раньше, чем обработчик моей кнопки. Создавать 2 раз контрол не имеет смысла — тогла его свойства обнуляються.
...
Рейтинг: 0 / 0
Динамическое создание контролов - проблема
    #33820706
Mashutka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я в своей программе при динамическом создании контрола обязательно устанавливала ему ID. И каждый раз при PostBack'е создавала этот контрол снова с этим же ID. А все остальные свойства устанавливала только при первоначальной загрузке страницы. При этом его свойства не обнуляются. А в обработчике кнопки искать этот контрол по FindControl.
...
Рейтинг: 0 / 0
Динамическое создание контролов - проблема
    #33820961
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В методе Page_Load я создаю динамически textbox
Перенесите в Page_Init...
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Динамическое создание контролов - проблема
    #33832260
Spaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Ex_Soft, Вы писали:

E_S>В методе Page_Load я создаю динамически textbox
E_S>Перенесите в Page_Init...

Вообще говоря, в таком простом примере нет разницы, создавать в Page_Load() или в Page_Init(), хотя, конечно, второй вариант правильнее с архитектурной точки зрения. С другой стороны, в Page_Init() недоступен ViewState, что может сыграть решающую роль при дальнейшем развитии кода (так было со мной совсем недавно).

Проблема здесь не в этом. Проблема в том, что создавать control надо при каждом создании страницы и, если таковых несколько, обязательно в том же самом порядке. Естественно, ID'шники прописывать тоже надо, как уже было сказано. Конкретно для TextBox'а ничего запоминать не надо, подробнее смотри статью Понимание состояния отображения ASP.NET А я себе позволю лишь небольшую цитату (выделено мной):
...
Заметьте, что в нашем обсуждении этапа загрузки возвращаемых данных состояние отображения не упоминалось . Поэтому вы, должно быть, удивлены, почему мне взбрело в голову говорить об этапе загрузки возвращаемых данных в статье, посвященной состоянию отображения. Причина в том, чтобы обратить внимание на отсутствие состояния отображения на этом этапе. Это общая ошибка, встречающаяся среди разработчиков, считать, что состояние отображения каким-то образом ответственно за то, что TextBoxe, CheckBoxe, DropDownList и другие элементы управления помнят свои значения между возвратами данных обратно . Причина не в состоянии отображения, поскольку значения определяются посредством значений полей возвращенной формы и присваиваются в методе LoadPostData() тем элементам управления, которые реализуют IPostBackDataHandler.
Вкратце -- все вышеперечисленные элементы управления не используют ViewState для сохранения своего содержимого, используется Post back data.... << RSDN@Home 1.2.0 alpha rev. 650>>
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Динамическое создание контролов - проблема
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]