(6) Page.LoadComplete 事件:在页生命周期的加载阶段结束时发生
(7) Page.PreRender事件 :在加载 Control 对象之后、呈现之前发生。 (继承自 Control。)
(8) Page.PreRenderComplete 事件:在呈现页内容之前发生
四、ViewState对象
视图状态,在 ASP .NET 中,当一个表单被提交时,表单会连同表单值一起出现在浏览器窗口中。如何做到的呢?这是因为 ASP .NET 维持了您的 ViewState。 ViewState 会在页面被提交到服务器时表明它的状态。这个状态是通过在带有 < form runat=“server”> 控件的每个页面上放置一个隐藏域定义的。
这个对象是ASP.NET中特有的对象,在其他语言的后端技术中没有这个对象
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)//如果是第一次访问
{
//先将Count的值设为0,并且保存在ViewState中
ViewState["count"] = 0;
}
}
protected void btnAdd_Click(object sender, EventArgs e)
{
//每次点击按钮先取出ViewState中的值并且累加之后再次赋给ViewState
ViewState["count"] = Convert.ToInt32(ViewState["count"]) + 1;
Literal1.Text = ViewState["count"].ToString();
}
}
使用ViewState实现页面信息的保存
保存数据
ViewState对象存储数据[键值对]Key=Value
取出数据
根据Key值取出Value值
总结
(1) ViewState中保存的数据全部被转换成object类型,取出时务必强制转换成特定类型
(2) ViewState只能在同一个页面的连续多次请求之间保存信息,页面跳转后信息就会丢失
ViewState的本质
ViewState的本质是一个隐藏域,和原始的.aspx文件中的多出来的标签一样,都是一个隐藏域,第一次创建ViewState对象其实是创建了一个隐藏域

五、Session对象
使用方式和ViewState相似
Session对象用于存储在多个页面调用之间特定用户的信息。Session对象只针对单一网站使用者,不同的客户端无法相互访问。Session对象中止联机机器离线时,也就是当网站使用者关掉浏览器或者超过设定Session对象的有效时间,Session对象变量就会关闭。
1.Session的原理
Session是服务器将客户端的数据代替客户端做出对应的保存,问题是不同用户在选择商品时,Session是如何区分不同用户的选择?
(1) 服务器根据SessionID来区分不同的用户,它是一个很长的字符串
(2)SessionID在用户第一次访问时由服务器产生并由用户浏览器保存
(3)用户每次的操作,浏览器在向服务器请求时都会带着自己的SessionID
Web服务器是如何判断用户是第一次请求并为其生成SessionID?








