Ох, я бы определенно не рекомендовал бы ваш подход.Он очень хрупкий и сложный в обслуживании, и в зависимости от того, как используется ваш элемент управления, я даже не уверен, что вы можете выводить больше тегов asp и правильно их обрабатывать.
Почему бы вам просто не унаследовать свойпользовательский элемент управления Panel
, а затем в обработчики событий Init или Load добавить к нему текстовое поле и пользовательский валидатор?Примерно:
public class MyControl : Panel
{
public MyControl()
{
}
protected override void OnInit(EventArgs e)
{
ScriptManager.RegisterScript( ... Google script, CSS, etc. ... );
TextBox txt = new TextBox();
txt.ID = "text1";
this.Controls.Add(txt);
CustomValidator vld = new CustomValidator();
vld.ControlToValidatre = "text1";
vld.ID = "validator1";
this.Controls.Add(vld);
}
}