Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Разработка под ASP.NET > Control ... must be placed inside a form tag with |
Автор: Vit 30.4.2007, 18:32 | ||||
Динамически создаю таблицу и контролы в ней. Собственно код вот он:
Получаю ошибку Control 'ctl04' of type 'CheckBox' must be placed inside a form tag with runat=server Проблема в создании CheckBox. Исследования показали: 1. Label создаётся без проблем, проблемы возникают при создании CheckBox 2. Если CheckBox создавать прямо на форме то проблем нет:
, но тогда они создаются не в таблице 3. Если таблицу создать в дизайнере, то проблем тоже нет, но мне надо создавать таблицу на лету. 4. Добавление аттрибута runat к CheckBox, таблицеб строке и клетке не даёт эффекта И как быть? |
Автор: Дрон 30.4.2007, 19:03 | ||
А если 16 строку заменить на:
Т.е. надо саму таблицу добавлять в форму, тогда естественно и твоё CheckBox окажется на форме. По-моему, всё дело в этом. Это ограничение вытекает из способа передачи данных с html-страницы на сервер. Данные передаются путём отправки (submit) всех полей формы. Т.е. просто Label не отправляет никаких данных и может находиться в любом месте, а CheckBox должен передавать своё состояние и поэтому обязательно помещается внутрь формы. |
Автор: Дрон 30.4.2007, 19:22 |
От страницы вообще, т.е. Page. И если посмотреть содержимое Page.Controls, то одним из них и будет твой form1. Меня это поначалу тоже немного с толку сбивало, но в итоге всё логично -- ведь контролы (типа того же Label), могут находиться вне формы. Они вообще могут находится вне хтмл-ного тэга <body> ![]() |
Автор: Vit 30.4.2007, 19:41 |
Спасибо! |