Какое событие мне нужно программно добавить в элемент управления? - PullRequest
2 голосов
/ 08 апреля 2009

Мне нужно добавить требуемый валидатор в текстовое поле программно на странице, сделать это в page_load или в каком-нибудь событии до этого?

Ответы [ 2 ]

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

Это зависит от того, почему вам нужно добавить его. Если он всегда будет там, то OnInit - хорошее место.

Если вам нужно добавить его только после того, как какое-либо действие произошло, вы хотите сделать это после вызова LoadViewState, чтобы вы могли продолжить добавлять его, когда добавляете его в первый раз. При первом добавлении, скорее всего, вам захочется сделать это из-за какого-либо события обратной передачи, чтобы вы могли добавить его в свой обработчик событий.

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

Если вам нужен Валидатор только в том случае, если элемент управления загружен некоторыми данными, вы добавляете его сразу после загрузки данных, будь то OnLoad или какой-либо метод доступа к свойству.

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

Page_Load хорош для изменения настроек элементов управления.

РЕДАКТИРОВАТЬ: Этот код проверен и работает:

// in page_load event : 
validator.ControlToValidate = textboxToValidate.ID;

Но если вы генерируете свои валидаторы после события динамически, проблема может быть в другом.

...