je contrôle utilisateur nommé DateTimeUC qui a deux champs de saisie sur son balisage:Les contrôles ne semblent pas sur le contrôle de l'utilisateur créé dynamiquement
<asp:TextBox ID="dateTextBox" runat="server"></asp:TextBox>
<asp:TextBox ID="timeTextBox" runat="server"></asp:TextBox>
Je crée dynamiquement ce contrôle dans un autre contrôle utilisateur:
Controls.Add(GenerateDateTime(parameter));
private DateTimeUC GenerateDateTime(SomeParameter parameter)
{
DateTimeUC uc = new DateTimeUC();
uc.ID = parameter.Name;
return uc;
}
Mais quand je rends la page, DateTimeUC ne rend rien. Je l'ai vérifié comme ceci:
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 vide et Controls.Count est 0. Qu'est-ce que je fais mal?
cherché une réponse à toute la journée. Merci! – McMuttons
Comment charger un contrôle utilisateur incorporé dans une DLL? – Zolomon
@Zolomon: Vous avez besoin du fichier * .ascx. Le fichier * .ascx contient le balisage asp.net qui est utilisé pour la classe générée automatiquement. La classe autogenerated hérite de class in assembly (* .dll). – TcKs