2009-08-30 9 views
0

Lorsque je crée dynamiquement un contrôle et que je l'ajoute à la collection de contrôles de la page, j'obtiens l'erreur suivante. Que se passe-t-il? Comment ajouter dynamiquement des contrôles à une page?Lorsque j'essaie d'ajouter un contrôle créé dynamiquement à un ASP, j'obtiens une erreur

Control 'ctl02' of type 'TextBox' must be placed inside a form tag with runat=server. 

que je fais quelque chose comme:

protected override void OnPreRender(EventArgs e) 
{ 
    base.OnPreRender(e); 
    double total = (double)ViewState[cKeyTotal]; 
    TextBox txt = new TextBox(); 
    txt.Text = "hello world"; 

    this.Controls.Add(txt); 
} 

Répondre

0

Vous ne disposez pas d'un formulaire sur la page. Ce contrôle doit être à l'intérieur d'un.

Ajouter un formulaire:

<form runat='server' id='form1'> 
    ... 
</form> 

Et la vie devrait être bon.

+0

Je ne comprends pas. Je travaille sur le codebehind d'un Default.aspx standard et il a le html que vous avez écrit ci-dessus. Il manque quelque chose d'autre – MedicineMan

+1

Je l'ai eu. Le problème était que this.Controls.Add() n'ajoute pas le contrôle à form1. Si vous modifiez le code ci-dessus pour avoir form1.Controls.Add() alors tout est heureux. – MedicineMan

Questions connexes