1、IsPostBack介绍
Page.IsPostBack是一个标志:当前请求是否第一次打开。 调用方法为:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者this.Page.IsPostBack,它们都等价。
  1)当通过IE的地址栏等方式打开一个URL时是第一次打开, 当通过页面的提交按钮或能
引起提交的按钮以POST的方式提交的服务器时,页面就不再是第一次打开了。(每点击一次按钮,都是一次加载)
  2)IsPostBack只有在第一次打开的时候是false,其它时候都是true
  3).Net判断一个Page是否第一次打开的方法:Request.Form.Count>0
  4)每次页面Load的时候,根据需要把每次都要加载的代码放在IsPostBack中,只需要
加载一次的代码放在if(!IsPostBack)中。
  5)每次用户回传服务器任何信息的时候,都会引发isPostBack属性用来判断此用户是

否曾经做过登陆或者其他事件
  6 if(!IsPostBack)
  { 
  Response.Write("第一次提交!"); 
  } 
  if(IsPostBack) 
  { 
  Response.Write("按按钮!"); 
  } 
2 IsPostBack结论
本人对.Net的源代码中相关的处理进行的分析得到如下的结论:
结论① 对于使用Server.Transfer进行迁移时迁移到的页面其IsPostBack=false。
结论② Post方式如果Request中没有请求值,即Request.Form =null则IsPostBack=false
;Get方式如果Request中没有请求值,即Request.QueryString =null则IsPostBack=false。
结论③ 如果QueryString或Form虽然有请求值,但是QueryString或Form中的Key没有
“__VIEWSTATE”和“__EVENTTARGET”和“__VIEWSTATEFIELDCOUNT”,并且没有键为“null”,值以“__VIEWSTATE”开头并且也没有值为“__EVENTTARGET”的键值对,则IsPostBack=false。
结论④ 使用Response.Redirect方式向自画面迁移时,此时IsPostBack=false。
结论⑤ 发生跨页提交(CrossPagePostBack),当访问PreviousPage属性的时候,对于
源PageIsPostBack=true。结论⑥ 发生跨页提交(CrossPagePostBack)时目标页面是IsPostBack=false
结论⑦ 使用Server.Execute迁移到的页面其IsPostBack=false。
结论⑧ 在Page运行期间其对应的DLL被更新了并且Page的树结构发生过变化,这种情况
下请求时IsPostBack=false。
可以这样来理解这些结论:一般情况判断Request中如果没有请求值则IsPostBack=false
。如果有请求值但是不包括“__VIEWSTATE”等一些特殊的键或值,则IsPostBack=false(每次请求后.Net框架会将一些特殊的隐藏域

“__VIEWSTATE”等返回给客户端)。还有一些特殊的情形是上面的规则不能正确判断的需要特殊处理的,这些情形包括Server.Transfer,Response.Redirect,CrossPagePostBack,Server.Execute,发
生了页面元素变化及重新编译。

转载于:https://www.cnblogs.com/AaronBear/p/5857795.html

[转载]ASP.NET中IsPostBack详解相关推荐

  1. Java中CAS详解

    转载自  Java中CAS详解 在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁 锁机制存在以下问题: (1)在多线程竞争下,加锁.释放锁会导致比较多的上下文切换 ...

  2. ASP.NET Core 中 HttpContext 详解与使用 |

    ASP.NET Core 中 HttpContext 详解与使用 | Microsoft.AspNetCore.Http 详解 笔者没有学 ASP.NET,直接学 ASP.NET Core ,学完 A ...

  3. ASP.NET页面事件详解

    ASP.NET页面事件详解 ASP.NET页面事件详解 1.Page_Init()事件 当页面初始化时发生此事件.可以利用Page_Init()将该事件与要在.NET页面上显示控件之前的运行的代码建立 ...

  4. Asp.Net+Jquery.Ajax详解5-$.getScript

    目录(已经更新的文章会有连接,从7月25日开始,每2到3天更新一篇): Asp.Net+Jquery.Ajax详解1-开篇(2012.07.25发) Asp.Net+Jquery.Ajax详解2-$. ...

  5. ASP.NET 运行时详解 揭开请求过程神秘面纱

    对于ASP.NET开发,排在前五的话题离不开请求生命周期.像什么Cache.身份认证.Role管理.Routing映射,微软到底在请求过程中干了哪些隐秘的事,现在是时候揭晓了.抛开乌云见晴天,接下来就 ...

  6. 函数中{}输出格式详解(C#)

    Console.WriteLine()函数中{}输出格式详解(C#) Console.WriteLine()函数的格式一直没怎么注意.今天同事问起Console.WriteLine({0:D3},a) ...

  7. [转载]AxureRP 7.0部件详解(一)

    转载]AxureRP 7.0部件详解(一) 本文为Axure RT7.0教程,本章主要介绍menu菜单.table表格.Tree Widget 树部件三个部件,后续将持续更新...... Menu 菜 ...

  8. ASP.NET 操作Cookie详解 增加,修改,删除

    ASP.NET 操作Cookie详解 增加,修改,删除 Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109.它 ...

  9. 7、【转载】python yield generator 详解

    7.[转载]python yield generator 详解 目录 generator基础 generator应用 generator基础应用 generator高级应用 注意事项: 正文 本文将由 ...

最新文章

  1. C#资源释放及Dispose、Close和析构方法
  2. SQL SERVER 2008如何卸载干净
  3. 会签是什么意思_后宫为什么要争宠·六
  4. 51单片机的定时器深入讲解
  5. 2018/7/16-纪中某C组题【jzoj4024,jzoj4025,jzoj2136,jzoj2137】
  6. mysql用 fifo 记录日志_MySQL一丢丢知识点的了解
  7. Mybatis源码学习笔记
  8. python程序结构框架_Python——Flask框架——程序的基本结构
  9. 《零基础入门学习Python》学习过程笔记【016列表,元组,字符串的转化及共用技巧】...
  10. 智能行业热点速览(2019.7.15)
  11. SQLyog 激活 注册码
  12. Smarty自学笔记
  13. C# SolidWorks二次开发-工程图-更换工程图图纸格式/模板
  14. 通过阅读器打开ofd格式发票并转为PDF
  15. dropbox 怎么使用_如何在一台PC上使用多个Dropbox帐户
  16. java 软键盘_【学习笔记】【java appium】软键盘搜索、回车按钮
  17. linux那些事之page fault(do_fault)(5)
  18. latex学习笔记——latex的字体字号设置
  19. 【2】Kali破解家用WI-FI密码 - WPA/WPA2加密
  20. [多校联考-初级]徒步旅行

热门文章

  1. 利用jdbc做一个购买的事务
  2. Android笔记之模拟器
  3. yum go linux,使用yum安装Go(Golang)
  4. python连数据库课程设计_python 连接操作 各类数据库
  5. 1689: 营救小明(bfs+priority_queue逆向思维)
  6. 二叉树已知先序和中序输出后序
  7. 阿里云自研数据库支撑双11,助力电商客户订单峰值突破每秒20万笔
  8. 大咖白话 Serverless 训练营,限时报名开启!
  9. 如何通过Graph+AI的方法打造高精度风控模型?
  10. 自建Kubernetes集群如何使用弹性容器实例ECI