Это зависит от того, почему вам нужно добавить его. Если он всегда будет там, то OnInit - хорошее место.
Если вам нужно добавить его только после того, как какое-либо действие произошло, вы хотите сделать это после вызова LoadViewState, чтобы вы могли продолжить добавлять его, когда добавляете его в первый раз. При первом добавлении, скорее всего, вам захочется сделать это из-за какого-либо события обратной передачи, чтобы вы могли добавить его в свой обработчик событий.
Я бы предложил добавить заполнитель к элементу управления в том месте, где вы хотите этот элемент управления. Затем вы добавляете элемент управления, когда это требуется. Затем вы должны сохранить некоторую информацию во ViewState, чтобы знать, что вы добавили элемент управления. Затем вы можете переопределить LoadViewState и добавить туда элемент управления, если это необходимо.
Если вам нужен Валидатор только в том случае, если элемент управления загружен некоторыми данными, вы добавляете его сразу после загрузки данных, будь то OnLoad или какой-либо метод доступа к свойству.