Bonjour à toutes et à tous,

J'ai un problème pour la sauvegarde d'une chaine de caractères en Session:

mon appli est composée de la facon suivante:
  • 3 boutons qui servent au maniement d'onglet
  • un PlaceHolder pour afficher le bon userControl en fonction du bouton sur lequel je clique
  • 3 userForm (un par bouton...)


Mon problème est le suivant:
lorsque je clique sur un bouton, je charge le bon userControl, jusqu'ici tout va bien.

Mon problème est que lorsque je clique sur un bouton du userControl, la page se recharge (normal) et le userControl disparait.

J'ai donc voulu sauvegarder en session la chaine contenant le path du user form, ensuite je récupère cette chaine dans le page_load, et je recharge...

Mais le problème est que la chaine n'est sauvée dans le Session que si j'appuie 2 fois sur le bouton...

le code:
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
		private void Page_Load(object sender, System.EventArgs e)
		{
			if(!IsPostBack)
			{
				UserControl uc=(UserControl)this.LoadControl("~/UserControls/UserControlArchivage.ascx");
				PlaceHolderPrincipal.Controls.Add(uc);
			}
			else
			{
				UserControl uc=(UserControl)this.LoadControl(""+Session["test1"]);
				PlaceHolderPrincipal.Controls.Add(uc);
			}
		}
 
		private void ButtonArchivage_Click(object sender, System.EventArgs e)
		{
			Session["test1"]="~/UserControls/UserControlArchivage.ascx";
			UserControl uc=(UserControl)this.LoadControl("~/UserControls/UserControlArchivage.ascx");
			PlaceHolderPrincipal.Controls.Add(uc);
		}
 
		private void ButtonConsultationMoisCourant_Click(object sender, System.EventArgs e)
		{
			Session["test1"]="~/UserControls/UserControlConsultationMoisCourant.ascx";
 
			UserControl uc=(UserControl)this.LoadControl("~/UserControls/UserControlConsultationMoisCourant.ascx");
			PlaceHolderPrincipal.Controls.Add(uc);
		}
 
		private void ButtonConsultationHistorique_Click(object sender, System.EventArgs e)
		{
			Session["test1"]="~/UserControls/UserControlConsultationHistorique.ascx";
 
			UserControl uc=(UserControl)this.LoadControl("~/UserControls/UserControlConsultationHistorique.ascx");
			PlaceHolderPrincipal.Controls.Add(uc);
		}
Si quelqu'un a une piste... je suis preneur

Merci d'avance