2009-10-02 5 views
0

J'ai deux cases à cocher sur différentes pages. J'envoie la valeur de la première case en utilisant la session comme ceci:Case à cocher: Affichage en fonction de la valeur de la session?

protected void Button4_Click(object sender, EventArgs e) 
     { 
      Session["VSSsnap"] = CheckBox1.Checked; 
      Response.Redirect("~/Addnewpolicy4.aspx"); 
     } 

Je reçois cette session comme celui-ci sur la page suivante:

string vss = Session["VSSsnap"].ToString(); 

Cependant, je veux mettre cette valeur dans une case à cocher sur la deuxième page.

J'ai essayé, mais je reçois une erreur:

CheckBox1.Checked = Session["VSSsnap"].ToString(); 

J'ai aussi essayé cela; quand je debug, les valeurs sont également présentes (mais pas affiché par case à cocher):

CheckBox1.Checked.Equals(Session["VSSsnap"]); 

Toute aide serait grandement appréciée.

Répondre

1

utilisation ci-dessous le code:

if(Session["VSSsnap"] != null) 
{ 
CheckBox1.Checked = Convert.ToBoolean(Session["VSSsnap"]); 
} 
+2

Le code de Michael ou Luke est recommandé par rapport au mien. – Mahin

+0

merci ... cela a fonctionné ... – user175084

+0

Le code fonctionnera, mais je pense que le code de Michael ou Luke est recommandé par rapport au mien. – Mahin

1

La propriété Checked de la case à cocher est un bool, pas string.

Vous essayez d'affecter un string à la propriété Checked, ce qui explique pourquoi vous obtenez une erreur.

Essayez ceci:

CheckBox1.Checked = (bool)(Session["VSSsnap"] ?? false); 
+0

+1 parce que votre extrait est un recommandé que le mien. – Mahin

+0

grands esprits se ressemblent –

2

Vous n'êtes pas la valeur de caster la session. Essayez:

CheckBox1.Checked = (bool) (Session["VSSsnap"] ?? false); 

Le ?? vérifiez que si VSSsnap est nul pour une raison quelconque, false sera retourné.

+0

+1 parce que votre extrait est recommandé que le mien. – Mahin

Questions connexes