asp.net user-controls dynamic-controls

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 ();"