IsPostBack探讨

      很多时候,在WebForm的Page_Load事件中,都需要判断当前form是否是IsPostBack。而该属性在什么时候会变化呢,本文给出一些个人的观点

一      IsPostBack的作用

      IsPostBack主要是用来check 当前的form 是否是第一次得到请求。当IsPostBack == false 时, 表示是第一次请求。之所以要有此属性来判断是因为所以server control的事件处理都需要通过Page_Load来触发。换句话讲,凡是支持服务器事件的控件,也会对当前的form 发出request。

二      IsPostBack的值的确定

  1. 使用Server.Transfer切换页面时,IsPostBack = false;
  2. post方式下,若 Request 中无值,既Request.Form == null, 则IsPostBack = false; Get方式下,如果Request中无值,既 Request.QueryString == null, 则IsPostBack = false;
  3. QueryString.Form中有请求值,但其中没有Key,ViewState,EventTarget,ViewStateFileCount,并且没有键值为 null, 则IsPostBack = false;
  4. Response.Redirect时 IsPostBack = false;
  5. 发生跨页提交(CrossPagePostBack),当访问PreviewPage 属性的时候,对于源Page,IsPostBack = true;
  6. 发生跨页提交,目标页面的 IsPostBack = false;
  7. Server.Execute时, IsPostBack = false;
  8. Page运行期间,对应的dll 被更新并page 树结构发生变化, IsPostBack = false。

你可能感兴趣的:(post)