asp.net 中 AutoPostBack 和IsPostBack浅析

来源:互联网 发布:mac 桌面日程管理软件 编辑:程序博客网 时间:2024/05/16 07:57

顺序是这样的:先说明一下PostBack的意思,接着讲解页面的IsPostBack属性,最后讲解服务器控件的AutoPostBack 属性。

首先,什么是Post呢?

我们通过表单提交数据就是一个简单的Post请求。

其次,什么是PostBack呢?

PostBack只比Post多了一个Back单词(Back的意思也很清除:返回),大概可以这样理解,Post之后又Back回来了:提交数据之后重新返回。

不知道上面的解释够不够清除,为了加深大家的印象,下面我们以具体的控件作介绍。

大家都知道如何定义一个表单,在表单中添加表单标签、Button按钮,并为Button按钮绑定点击事件。当你点击了这个Button按钮提交表单之后,你会发现浏览器的页面自动刷新了。其实,这个页面重新加载的过程就是一次PostBack。

讲解了PostBack,我们再来看一下页面的IsPostBack属性。

IsPostBack的意思也很好理解:是否是PostBack

当页面第一次加载,就是说服务器第一次发送内容给客户端,这个时候IsPostBack的值是false,因为客户端还没有过postback发生。当有点击事件发生了,服务器又收到请求了,页面重新加载了,那么IsPostBack的值就是true了。

用处:IsPostBack通常的应用就是 if (!IsPostBack) {  。。。。},用来当页面第一次加载的时候初始化页面的默认设置。

讲解了IsPostBack,最后我们再来看一下服务器控件的AutoPostBack属性。

AutoPostBack的意思也很好理解:是否是自动PostBack。

Web服务器控件大多数都有AutoPostBack 属性,意思说自动刷新。以TextBox控件为例,若我们把AutoPostBack 属性在设定为True,并且指定OnTextChange 的事件程序为何时,当使用者按下「Enter」或是「Tab」让光标离开此控件而且控件的内容有所改变时,将自动传回控件现在的内容并触发Page_Load 事件及OnTextChange 属性所设定的事件(AutoEventWireUp=true)。支持AutoPostBack 属性的Web 控件以及对应的事件如下表所示:

控件名称 指定触发事件的属性
CheckBox OnCheckChanged
CheckBoxList OnSelectedIndexChanged
DropDownList OnSelectedIndexChanged
ListBox OnSelectedIndexChanged
RadioButton OnCheckChanged
RadioButtonList OnSelectedIndexChanged

TextBox OnTextChanged

用处:设置Web控件的自动提交、刷新页面。

默认是AutoPostBack =false。为什么会这样呢?你想想如果这个属性是true那么,你点击一次,那么就像服务器发送请求,然后页面重新加载。一般情况下它是辅助其他控件一起应用的,所以一般不要求它是true,当然需要时候,也可以设置成true。

切记:

(1)只有服务器控件才具有AutoPostBack 属性

(2)PostBack只在通过post方法(如果提交的数据为空,那么IsPostBack属性为false)提交请求本页面的时候才有意义。

(3)IsPostBack本身不是以一个独立的个体存在的,他是和ViewState 等内容结合起来使用的。

如果你想了解asp.net的状态管理,请参考:ASP.NET状态管理

0 0
原创粉丝点击