2009-10-02 5 views
0

다른 페이지에 두 개의 체크 박스가 있습니다. 나는이 같은 세션을 사용하여 첫 번째 체크 박스에서 값을 보낸다 :체크 박스 : 세션의 값에 따라 표시 하시겠습니까?

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

나는 다음 페이지에서 다음과 같이이 세션을 수신 :

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

그러나, 내가 체크 박스에이 값을 넣을 두 번째 페이지에.

나는 이것을 시도,하지만 난 오류 얻을 : 나는 또한이 시도

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

을; 디버그 할 때 값도 표시됩니다 (그러나 확인란으로 표시되지 않음).

모든 도움을 주시면 감사하겠습니다. 코드 아래

답변

1

사용 :

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

마이클 또는 루크의 코드가 내 것과 비교하여 권장됩니다. – Mahin

+0

고마워 ... 그게 ... – user175084

+0

코드가 작동하지만 마이클이나 루크의 코드가 내 것에 비해 좋습니다. – Mahin

1

체크 박스의 Checked 속성은 bool 아닌 string입니다.

stringChecked 속성에 할당하려고하는데 오류가 발생했습니다.

대신보십시오 : 당신은 세션에서 값을 캐스팅하지 않습니다

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

+1 귀하의 스 니펫이 제 것보다 권장됩니다. – Mahin

+0

위대한 마음은 비슷하다고 생각합니다. –

2

. 시도 :

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

?? VSSsnap이 어떤 이유로 든 null 인 경우 false가 리턴되는지 확인하십시오.

+0

+1은 내 것보다 추천 된 코드이기 때문에 +1합니다. – Mahin

관련 문제