asp.net - Los controles no aparecen en el control de usuario creado dinĂ¡micamente
user-controls dynamic-controls (3)
Creo que desea agregar su control al formulario de la página y no al formulario en sí.
tu codigo:
Controls.Add( GenerateDateTime(parameter) );
tratar:
Page.Form.Controls.Add( GenerateDateTime(parameter) );
Tengo control de usuario llamado DateTimeUC que tiene dos cuadros de texto en su marcado:
<asp:TextBox ID="dateTextBox" runat="server"></asp:TextBox>
<asp:TextBox ID="timeTextBox" runat="server"></asp:TextBox>
Estoy creando dinámicamente este control en otro control de usuario:
Controls.Add(GenerateDateTime(parameter));
private DateTimeUC GenerateDateTime(SomeParameter parameter)
{
DateTimeUC uc = new DateTimeUC();
uc.ID = parameter.Name;
return uc;
}
Pero cuando renderizo la página, DateTimeUC no muestra nada. Lo revisé así:
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
StringBuilder builder = new StringBuilder();
StringWriter swriter = new StringWriter(builder);
HtmlTextWriter hwriter = new HtmlTextWriter(swriter);
base.Render(hwriter);
string s = builder.ToString();
}
s está vacío y Controls.Count es 0. ¿Qué estoy haciendo mal?
Me encontré con este problema hace un tiempo. Necesita usar el método LoadControl (). Echa un vistazo a esta página en él.
Debe utilizar el LoadControl( "your_user_control_app_relative_path.ascx" )
lugar de "DateTimeUC uc = new DateTimeUC ();"