转自:http://www.donews.net/shanyou/archive/2004/04.aspx

现在从对ASP.NET页面的执行顺序开始,体会一下B/S结构的程序的特点,下图是ASP.NET页面的执行顺序说明:

  Page_Init(页面初始化引发的事件)——>Page_Load(加载页面时引发的事件)——>Control   Event(服务器控件引发的事件)——>Page_UnLoad(页面从内存中卸载时引发的事件)

  Page_Init和Page_UnLoad不常用,但是这里还是要说明一下。Page_Init和Page_Load事件区别在于,只有后者才能完全加载控件,绑定数据,虽然你可以在Page_Init中访问控件,但是其viewstate都不会被加载,所以此时控件中只拥有默认值。
  这里说到了viewstate,我们先来做一个大致的了解——其实在ASP.NET中有两个viewstate。一个是控件本身的,用来维护控件自己的一些状态,比如说某个空间有变色的功能,它的viewstate就维护这个功能,这个viewstate是不能被用户访问的。相信自己写过控件的朋友都会有这样的感觉,自己写控件当然也要用自己的一个viewstate来维护这个控件的状态;而另外一个viewstate,是用户使用的,这个viewstate和Session几乎一模一样,必须要先对其进行定义,才能使用。

  每当点击ASP.NET的Web网页上的Button、LinkButton或ImageButton等控件时,表单就会被发送到服务器上。如果某些控件的AutoPostBack属性被设置为true,那么当该控件的状态被改变后,也会使表单会发送回服务器。?(AutoPostBack属性,它只有两个bool值,true/false。如果这个属性被设置成false,那么点击后就不会立刻将变化传给服务器处理,也就不会有该控件的SelectedIndexChanged事件。)
  每次当表单被发送回服务器,就会被重新加载,启动Page_Load事件,执行Page_Load事件处理程序中的所有代码(注意,是每次都会执行!)。
很显然把网页的初始化代码放在这里是最合适不过。我们经常会希望在每次加载网页时执行一些代码,如一些控件的数据绑定。
 当我们希望只有在网页第一次加载时执行另一些代码(基本上都是数据的默认绑定),甚至希望一些代码在除首次加载外的每次加载时执行。那么我们可以利用IsPostBack特性来完成这一功能。在网页第一次加载时,该属性的值是false。如果网页因回送而被重新加载,IsPostBack属性的值就会被设置为true。

在ASP.NET应用程序中,如果需要在页面第一次显示时执行一些初始化操作,必须判断IsPostBack属性!

  在ASP.NET使用Page.IsPostback,那么就可以避免往返行程上的额外工作:如果处理服务器控件回发,通常需要在第一次请求页时执行代码,该代码不同于激发事件时用于往返行程的代码。如果检查?Page.IsPostBack?属性,则代码可按条件执行,具体取决于是否有对页的初始请求或对服务器控件事件的响应。这样做似乎很明显,但实际上可以忽略此项检查而不更改页的行为。该属性用的好坏,直接关系到你程序运行是否按照你最初的意愿,也关系到整个页面的效率。因为,如果每次都会给控件绑定数据,不管你是第一次访问,还是提交了数据以后,那么这个页面程序的效率可想而知。

一个B/S结构的页面每一次提交,它都会重新从头到尾执行一次。而C/S结构的程序就不会这样,这是和C/S结构的程序最大的区别!? 其实,得不到控件的数据,都是因为这个原因。

转载于:https://www.cnblogs.com/wangzhewang/archive/2010/09/13/1824790.html

ASP.NET的Page.IsPostBack 属性详细说明(转)相关推荐

  1. 浅析ASP.NET的Page.IsPostBack 属性

    浅析ASP.NET的Page.IsPostBack 属性 http://www.sina.com.cn 2008年05月06日 11:33  IT168.com [IT168技术文档] 现在从对ASP ...

  2. 浅析ASP.NET的Page.IsPostBack 属性http://www.sina.com.cn 2008年05月06日 11:33 IT168.com

    浅析ASP.NET的Page.IsPostBack 属性 http://www.sina.com.cn 2008年05月06日 11:33  IT168.com [IT168技术文档] 现在从对ASP ...

  3. asp.net IsPostBack属性

    ASP.NET的IsPostBack属性 现在从对ASP.NET页面的执行顺序开始,体会一下B/S结构的程序的特点,ASP.NET页面的执行顺序说明:Page_Init(页面初始化引发的事件)--&g ...

  4. ASP.NET @Page指令属性

    ASP.NET @Page指令属性 @Page指令位于每个ASP.NET页面的顶部,告诉ASP.NET这个具体页面使用什么属性,以及该页面继承的用户控件.ASP.NET页面@Page指令属性有:Asp ...

  5. %@ Page% page指令属性

    以前只知道会用就行,今天boss让我去理解一下<%@ Page%>里面的各个属性的用法,于是就有了这篇东凑西凑的文章! <%@ Page%>是页面指令,作用于当前页面,指定使用 ...

  6. ASP.NET(一):Reques对象和Response对象的区别,以及IsPostBack属性的用法

    导读:在ASP.NET的学习中,初步认识了其6大对象(严格说来只能算是属性):Request,Response,Application,Session,Server,OjectContext.这些对象 ...

  7. asp.net访问sqlserver获取数据、IsPostBack属性和VS可视化调试的概念

    新建一个asp.net网站:sqlserver中有如下一张表: 新建一个页面, demo1.aspx:在页面上添加一个GridView控件: demo1.aspx.cs代码: using System ...

  8. ASP.NET中防止页面多次加载的IsPostBack属性

    查查msdn,上边有IsPostBack的定义:获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问.如果是为响应客户端回发而加载该页,则为true:否则为 false. ...

  9. 关于@Page的属性

    关于@Page的属性 属性 AspCompat 当设为 true 时,允许在单线程单元 (STA) 线程上执行页.这允许页调用 STA 组件,例如用 Microsoft Visual Basic 6. ...

最新文章

  1. 活动推荐:语音和语言技术在自然交互中的实践沙龙
  2. Simulink仿真 第二节 输入输出和子系统
  3. CTF(pwn) 堆利用 之 unlink 介绍
  4. Android图片适应屏幕大小
  5. python笔记第二天
  6. 中移动正进行智能网关互通测试:下半年规模集采
  7. BaseExecutor.query()-创建CacheKey
  8. 阿里前CEO卫哲的万字长文:被马云骂醒,看透B2B 10大核心问题!
  9. git 列出标签_Git标签介绍:如何在Git中列出,创建,删除和显示标签
  10. 1分钟完美安装最新 CentOS + Nginx + PHP-FPM + MySQL
  11. 通过Bigtop编译Hadoop组件的rpm包
  12. php 字符串偏移量,注意:PHP中未初始化的字符串偏移量
  13. 2022年6月少儿编程等级测试来了
  14. python 循环播放音乐_python中pygame循环播放3首音乐和3张图片
  15. java计算机毕业设计宁夏红色旅游管理系统源代码+数据库+系统+lw文档
  16. 史上最全maven setting解读(本地仓库,远程仓库,鉴权等)
  17. 财务机器人RPA推动财务职能转换
  18. mongo-go-driver 踩坑心得 server selection error
  19. unity shader 之基础 七八 纹理采样、透明度渲染
  20. 前端鼠标移入悬浮框针对页面顶部和底部的定位设置

热门文章

  1. 《妥协的完美主义:优秀产品经理的实践指南(卷二)》一1.2 交互设计不是横空出世...
  2. Endpoint 理解
  3. npm与Yarn命令对比
  4. 内网环境下预览ArcGIS地图服务
  5. Java的三大结构理解
  6. keepalived主从模式监测nginx
  7. Dos中@符号的使用演示(屏蔽echo off的回显)
  8. 2020 年国外 9 个顶级的 Java 框架,你知道几个?
  9. 写SpringBoot项目的时候,报错Ordinal parameter not bound
  10. html 图片能重叠吗,css两张图片怎么叠加在一起?