Bonjour à tous et à toutes.

Mon problème est le suivant. J'ai une liste déroulante qui me permet de choisir entre plusieurs types d'envoi (courrier, fax, mail). En fonction du choix sélectionné, je veux afficher un controle utilisateur différent :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
' Si un type a bien été choisi
If DDL_Type_Courrier.SelectedValue <> "-1" Then
 
   ' Si le type de courrier choisi est : courrier ou fax
   If Convert.ToInt32(DDL_Type_Courrier.SelectedValue) = Constantes.Courrier Or Convert.ToInt32(DDL_Type_Courrier.SelectedValue) = Constantes.Fax Then
 
      ' On charge le formulaire de saisie d'un courrier papier
      MPapier = CType(LoadControl("MailingPapier.ascx"), MailingPapier)
      MPapier.TypeCourrier = Convert.ToInt32(DDL_Type_Courrier.SelectedValue)
      PH_Envoi.Controls.Add(MPapier)
 
   Else
 
      ' Sinon on charge le formulaire de saisie d'un courrier électronique
      MEmail = CType(LoadControl("MailingEmail.ascx"), MailingEmail)
      PH_Envoi.Controls.Add(MEmail)
 
   End If
 
End If
sachant que ph_envoi est un placeholder. Voilà ce que j'obtiens :

- si je sélectionne courrier et après fax --> ok (note : c'est le même controle)
- si je sélectionne courrier et après mail --> erreur
- si je sélectionne mail et après courrier --> ok
- si je sélectionne courrier, -1 et après mail --> ok

et voici l'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Échec du chargement de viewstate. L'arborescence du contrôle sur lequel viewstate est chargé doit correspondre à l'arborescence du contrôle qui a été utilisé pour enregistrer viewstate lors de la demande précédente. Par exemple, lors de l'ajout dynamique de contrôle, les contrôles ajoutés lors d'une publication doivent correspondre au type et à la position des contrôles ajoutés lors de la demande initiale.
Je pense comprendre le problème ( ), ce que je comprends pas c'est pkoi l'erreur est déclenchée si je fais courrier et après mail, mais pas si je fais mail et après courrier, pourtant le controle utilisateur change dans les deux cas
Enfin si qqu'un avait une solution à me proposer pour y remédier.

Merci d'avance.