如果希望把更改事件立即传送给服务器,可以把AutoPostback属性设置为true。这样就会使用客户端的JavaScript把窗体数据立即提交给服务器。当然,网络通信量也会增加。使用这个功能时要小心。
页面返回给服务器后,比较控件的新值和旧值是由View State完成的。View State是一个隐藏字段,它会同页面的内容一起发送给浏览器。当把页面发送给客户端时,View State会包含与窗体中的控件相同的值。向服务器回送时,View State也会同控件的新值一起发送给服务器。这样它就可以验证值是否改变,并调用事件处理程序。
在ASP.NET中,Button控件有一个新属性PostbackUrl,定义了应从Web服务器上请求的页面。这个属性创建客户端JavaScript代码,用Submit按钮的客户端onclick处理程序请求所定义的页面。
浏览器把第一个页面中窗体的所有数据都发送到新页面上,但是在新请求的页面上,需要从前面页面定义的控件中获取数据。为了访问前面页面中的控件,Page类定义了属性PreviousPage。它返回一个Page对象,使用FindControl()方法来访问这个页面的控件。它返回一个Control对象。开发过程中,如果不使用FindControl()方法访问前面页面的值,就可以把对前面页面的访问强类型化,以减少错误。