Отключен флажок «Обязательные поля» на стороне сервера. - PullRequest
0 голосов
/ 30 апреля 2009

У меня есть пользовательский элемент управления с несколькими полями для текстовых полей и флажок, содержащийся в нем.

Если флажок установлен и пользователь отправляет форму, мне нужно разрешить ему продолжить, если текстовые поля пусты (и флажок установлен).

Я должен реализовать это без JavaScript.

Проблема в том, что при событии OnInit пользовательского элемента управления, когда я подключаю текстовые поля и их валидаторы, я не могу получить доступ к значению флажка.


Я пытался переопределить uniqueid флажка, чтобы в событии OnInit пользовательских элементов управления я мог отключить требуемые fieldvalidators, если this.Context.Request.Form ["CheckboxId"] = "On", но сразу Я переопределил уникальный идентификатор флажка viewstate перестал работать.

Еще одна вещь, о которой я подумал, - это наличие настраиваемого поля fieldvalididator, которое принимает флажок в конструкторе и отключается, если значение равно false.

1 Ответ

1 голос
/ 30 апреля 2009

Вы пытались выполнить логику инициализации элемента управления во время события Control.Load , переопределив вместо этого метод Control.OnLoad ?
На этом этапе жизненного цикла элемента управления вы сможете получить доступ к значению CheckBox.

В качестве примечания: если вы хотите отключить проверку, вам не обязательно отключать все элементы управления Validator . Вместо этого вы можете просто установить для свойства Button.CausesValidation значение False на кнопке, которая будет отправлять форму.

UPDATE:
Похоже, вы создаете пользовательский элемент управления , который представляет собой сложный элемент управления, состоящий из совокупности простых элементов управления, работающих вместе как единое целое.
Если вы хотите сделать это полностью в коде с Custom Control вы должны наследовать от CompositeControl класса. Это дает вам лучшее из обоих миров. Инициализация дочерних элементов управления выполняется путем переопределения метода CreateChildControls .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...