j'ai lu sur la création de contrôle dynamique dans ASP.NET ce morceau de texte:création contrôle dynamique
... Lorsque vous utilisez des contrôles dynamiques, vous devez vous rappeler qu'ils existeront jusqu'à la prochaine postback . ASP.NET ne recréera pas un contrôle ajouté dynamiquement. Si vous devez recréer un contrôle plusieurs fois, vous devez effectuer la création du contrôle dans le gestionnaire d'événements Page.Load. Cela a l'avantage supplémentaire de vous permettre de utiliser l'état d'affichage avec votre contrôle dynamique . Même si l'état d'affichage est normalement restauré avant l'événement Page.Load , si vous créez un contrôle dans le gestionnaire pour l'événement Page.Load, ASP.NET appliquera tout état d'affichage informations qu'il a après la Le gestionnaire d'événements de page.load se termine. Ce processus est automatique ...
Je voulais l'essayer par exemple créer un bouton déclarative -
<asp:Button ID="Button1" runat="server" Text="Button"
onclick="Button1_Click" />
et dynamiquement derrière le code 5 cases -
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i <= 5; i++)
{
var chBox = new HtmlInputCheckBox();
Controls.Add(chBox);
}
}
Mais lorsque je coche certaines cases et que j'appuie sur le bouton, toutes les cases à cocher sont effacées après la publication. Cela signifie qu'ASP.NET ne gère pas automatiquement les états d'affichage des contrôles dynamiques ? J'ai essayé d'activer l'état d'affichage à chaque case et pour toute la page, mais cela ne fonctionne pas. Quelqu'un peut-il expliquer: 1. Pourquoi est-ce le cas? 2. Comment éviter cela?
Salut. Voir le code mis à jour dans mon commentaire, espérons que cela fonctionne. Sinon, écrivez-moi un commentaire, et je verrai si je peux vous aider. – Kirtan