注册 登录
编程论坛 ASP.NET技术论坛

大家帮看下这段代码什么意思

yuwojiusi 发布于 2007-12-16 10:34, 1039 次点击
private void Button1_ServerClick(object sender, System.EventArgs e)
        {
            if(int.Parse(ViewState["Count"].ToString())%2==1)
            {
                this.imgshow.Src="img\\2.gif";
            }
            else
            {
             this.imgshow.Src="img\\1.gif";
            }
            ViewState["Count"]=int.Parse(ViewState["Count"].ToString())+1;
        }

特别是是这句是什么意思int.Parse(ViewState["Count"].ToString())%2==1
谢谢 啊
2 回复
#2
清水香里2007-12-16 11:13
判断 ViewState["Count"].ToString() 转换成int型除以2  是否 余1
#3
ChenMo2007-12-16 15:27
ViewState 指的是当前页面的视图状态(不同于控件的视图状态),
ViewState 可以将任意支持序列化的对象保存到页面中,
它与 Session 的重要区别有两个:
第一、ViewState 保存的对象不能跨页使用,仅限当前页面使用。Session 对象则可以所有页面共享使用。
Session["Count"] = 13;
变量 Count 可供所有页面使用(只要存在),Count 变量的生命周期由初始化到会话结束,

ViewState["Count"] = 13;
变量 Count 仅能在当前页面使用,生命周期是请求当前页面开始,到当前页面完成生成HTML最终呈现到客户端浏览器的文件结束。
对象被序列化后“依附”在页面上,
呈现为页面时使用 <input type="hidden" value="信息被记录在此处"> 标记记录相关信息。
每一次回调(CallBack),将从当前页面中提取“依附”在页面上“寄存”的信息以还原该视图状态的对象。
例如:
Page_Load()
{
    if (! IsPostBack)
    {
        ViewState["Count"] = 0; //初始化 Count 变量
    }
}

经过初始化后,可在当前页面任意地方使用该变量(即使是回调时执行的代码)。

第二、Session 的变量存储在服务器上,ViewState 存储在当前页面中。
1