页面上有一个CheckBox:chk1,他的autopostback属性为true,他默认的.Checked属为false;  
现设这个页面自动刷新,周期为10s(通过<meta http-equiv="refresh" content="10">),在一个10s的周期内,我点击了这个这个chk1使其.Checked属性为true,即被选中
现在我想在下一次页面刷新后,这个chk1的.Checked属性仍然为真,即保存页面刷新前的状态,而不是默认的false原以为实现这个功能很简单,我用了一个Session变量在chk1_CheckedChanged方法中标志chk1是否被选中,以备在下次重载页面中调入这个Session,重新给chk1的.Checked属性赋值,代码如下:private void chk1_CheckedChanged(object sender, System.EventArgs e)
{
if( chk1.Checked == true ) 
    Session["check1"] = "true";
else
    Session.Remove("check1");
}
private void Page_Load(object sender, System.EventArgs e)
{
       if( Session["CheckBox1"] != null )
{
       chk1.Checked = true;
                            }
}对asp.net有所了解的都知道,上面代码的运行结果:
当你选中chk1后使其.Checked==true,再次选中chk1想使其.Checked属性为false时,却发现这个玩艺儿一直是被选中的,再怎么点选它都是选中的,下次重刷页面时也是选中的,原因我就不罗嗦了我是新手,以前没怎么用过ViewState请问各位高手,要想实现我上述的点选功能(即自动刷新后保持刷新前chk1的点选状态)到底应该怎么办?
多谢!

解决方案 »

  1.   

    你要加上if(!Page.IsPostBack )
    { if( Session["CheckBox1"] != null )
    {
           chk1.Checked = true;
                                } }
      

  2.   

    因为你点击一次他就会刷新一次,不过这样之后不知道你的<meta http-equiv="refresh" content="10">)还能不能管用,我没有试。如果不行就用location.reload()这个函数来实现刷新就行了。