复选框:根据会话值显示?

时间:2009-10-02 16:12:10

标签: c# asp.net visual-studio-2008

我在不同的页面上有两个复选框。我正在使用如下所示的会话从第一个复选框发送值:

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();

我也试过这个;当我调试时,值也存在(但不显示复选框):

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

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

您没有从会话中转换值。尝试:

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

??检查以确保如果VSSsnap因任何原因为空,则返回false。

答案 1 :(得分:1)

使用以下代码:

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

答案 2 :(得分:1)

复选框的Checked属性为bool,而不是string

您尝试将string分配给Checked属性,这就是您收到错误的原因。

请改为尝试:

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