Web服务器控件可以包含服务器上调用的事件处理程序,Button控件可以包含Click事件,DropDownList控件则提供了
SelectedIndexChanged事件,TextBox提供lTextChanged事件。
只有进行回送时,才在服务器上触发事件。文本框中的值改变时,TextChanged事件不会立即触发,只有单击了Submit
按钮,提交了窗体,并发送给服务器,TextChanged事件才会触发。ASP.NET运行库会验证控件的状态已改变,并调用相应
的事件处理程序。如果DropDownList的选项改变了,就调用SelectedIndexChanged事件,如果文本框的值改变了,就调用
TextChanged事件。
如果希望把Changed事件立即传送给服务器,可以把AutoPostback属性设置为true。这样就会使用客户端的Javascript
把窗体数据立即提交给服务器。当然,网络通信量也会增加。使用这个功能时要小心。
用控件的新值验证旧值是由ViewState完成的。ViewState是一个隐藏字段,它会同页面的内容一起发送给浏览器。当把
页面发送给客户端时,ViewState会包含与窗体中控件相同的值。向服务器回送时,ViewState也会同控件的新值一起发送给
服务器。这样它就可以验证值是否改变,并调用事件处理程序。