2009-02-24 5 views
0

Je mis un lien sur une page et onclick j'ai écrit un code pour ajouter des contrôles après avoir cliqué sur,commandes Ajout de problème d'exécution ASP.Net

DropDownList newDropdownlist = new DropDownList(); 
    panel.Controls.Add(newDropdownlist); 
    CheckBox newChkbox = new CheckBox(); 
    panel.Controls.Add(newChkbox); 
    TextBox txt = new TextBox(); 
    txt.ID = "txtPhoneValue"; 
    panel.Controls.Add(txt); 

Mon problème est quand je clique sur ce lien, il ajouter ces contrôle une fois, mais si j'ai cliqué à nouveau, il n'ajoute pas plus, semble qu'il supprime les contrôles ajoutés précédemment et re les ajouter à nouveau.

Je veux ajouter de plus en plus chaque lien cliquez.

Répondre

5

Ok, ces contrôles ajoutés ne sont pas conservés n'importe où entre les publications. Donc, vous devriez les ajouter chaque fois que la page est rechargée. Envisagez d'utiliser certains indicateurs (stockés dans la session, par exemple) pour indiquer que des contrôles supplémentaires doivent être ajoutés.

0

Comment est ce lien construction?

Si votre contrôle de lien est un contrôle html (contrôle client), le comportement que vous avez expérimenté est bon.

2

Vos contrôles sont en train de disparaître, car ils ne sont stockés nulle part (la page les oublie en postback). Rappelez-vous que, à chaque publication, votre page doit être recréée.

Il existe de nombreux articles intéressants sur l'utilisation de contrôles créés dynamiquement. Aussi, pour bien comprendre le problème, il est nécessaire de se familiariser avec le cycle de vie de la page.

Here're deux articles qui m'a vraiment aidé:

2

Vous devez recréer les contrôles (avec les mêmes ID!) sur post-retour, vous pouvez le faire dans le CreateChildControls méthode.

Il est intéressant de regarder le Page Life-Cycle of ASP.NET pour comprendre quand et où des choses peuvent être modifiées. S'il est trop tard, il ne sera pas ajouté à ViewState etc, donc cela vaut la peine d'être compris, en particulier lors de l'utilisation de contrôles créés dynamiquement.

Questions connexes