顺序是这样的:先说明一下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。
TextBox OnTextChanged
用处:设置Web控件的自动提交、刷新页面。
默认是AutoPostBack =false。为什么会这样呢?你想想如果这个属性是true那么,你点击一次,那么就像服务器发送请求,然后页面重新加载。一般情况下它是辅助其他控件一起应用的,所以一般不要求它是true,当然需要时候,也可以设置成true。切记:
(1)只有服务器控件才具有AutoPostBack 属性
(2)PostBack只在通过post方法(如果提交的数据为空,那么IsPostBack属性为false)提交请求本页面的时候才有意义。
(3)IsPostBack本身不是以一个独立的个体存在的,他是和ViewState 等内容结合起来使用的。
如果你想了解asp.net的状态管理,请参考:ASP.NET状态管理