У меня есть требование добавить RequiredFieldValidator и RegularExpressionValidator в динамически созданное текстовое поле в динамически созданной ячейке таблицы внутри пользовательского веб-элемента управления в области содержимого страницы, созданной из мастера.
Проблема, как вы, наверное, догадались, заключается в попытке динамически установить свойство ControlToValidate для просмотра моего динамически созданного текстового поля.
После некоторого исследования кода сейчас:
- Создает панель (как я слышал, ControlToValidate и Validator должны находиться в одном контейнере). Изначально это был заполнитель, но я пытался выполнить предложение, указанное ниже.
- Создает текстовое поле и устанавливает его идентификатор.
- Добавляет текстовое поле на панель.
- Создает RequiredFieldValidator.
Устанавливает идентификатор ControlToValidate. Значения, которые я пытался использовать:
- The ID of the control
- ClientID элемента управления
- идентификатор элемента управления с префиксом добавленного текста, который сервер добавляет к дочерним элементам управления пользовательского веб-элемента управления
- идентификатор клиента изменен таким же образом
- имя элемента управления (на всякий случай)
- имя элемента управления с префиксом текста, который сервер добавляет к именам элементов управления
- с использованием специального рекурсивного метода FindControl в попытке привести новый объект Control в Textbox, а затем с использованием его идентификатора и ClientID
- Уникальный идентификатор элемента управления
- то же изменено с префиксом, как описано выше
- Добавьте валидатор в панель.
- Добавьте панель в ячейку стола.
Излишне говорить, что я все еще не могу убедить Валидатора «увидеть» элемент управления, который он должен проверять, и у меня нет новых способов подойти к проблеме.
РЕДАКТИРОВАТЬ: Дальнейшая детективная работа привела меня к тому, что на странице нет проблем, пока не завершится событие page_load. Похоже, что у сервера возникла проблема после того, как код для построения страницы завершил выполнение. Я начинаю задаваться вопросом, действительно ли я добавляю элементы управления в контейнеры именования слишком поздно, а не слишком рано.
Какие-либо предложения?