J'ai une page ASPX qui charge dynamiquement les contrôles utilisateur: il y a un UpdatePanel qui contient ces contrôles (un à chaque fois). Lorsque je modifie un contrôle avec un autre, il échoue avec le message:Impossible de charger viewstate
Échec du chargement de viewstate. L'arborescence de contrôle dans laquelle viewstate est chargé doit correspondre à l'arborescence de contrôle qui a été utilisée pour enregistrer viewstate pendant l'application précédente. Par exemple, lors de l'ajout dynamique de contrôles, les contrôles ajoutés au cours d'un retour doivent correspondre au type et à la position des contrôles ajoutés au cours de l'application initiale .
Tous les trois contrôles héritent de System.Web.UI.UserControl
. Peut-être que je peux résoudre le problème en faisant:
- Chargez trois contrôles au moment du démarrage, puis masquer deux d'entre eux comme nous en avons besoin.
- Utilisez trois UpdatePanels, un pour chaque contrôle utilisateur.
- Un conseil?
Non, je l'ai fait et il lance la même exception. – VansFannel
Essayez d'insérer un point d'arrêt dans votre fonction que vous allez toucher lorsque vous publiez. Ensuite, utilisez la fenêtre de surveillance pour démarrer dans la liste .Controls qui contient vos contrôles créés dynamiquement. Voyez si vos contrôles existent dans cette liste. Sinon, vous devrez ajouter chaque contrôle à son propre panneau de mise à jour. – Daniel
Maintenant j'utilise un UpdatePanel pour chaque contrôle. Le problème a été résolu, mais maintenant j'en ai un autre: Erreur d'exécution dans Microsoft JScript: Sys.InvalidOperationException: Impossible de trouver UpdatePanel avec ID. 'CreateDestination1_DestinationMainUpdatePanel'. Si vous effectuez une mise à niveau dynamique, il doit s'agir d'un autre UpdatePanel. – VansFannel