代码改变世界

关于poseback

2011-08-22 15:00  刘朝  阅读(220)  评论(0)    收藏  举报
浏览器端传递数据到服务器的时候,服务器检查时候有_Viewstate是否存在,如果存在,就会在isPostBack中返回true。  
   
  IPostBackDataHandler接口定义此控件需要返回(Post回)值,并填回控件。在客户端,例如textbox控件等生成的html会在浏览器以Post方式回发服务器的时候在参数中提交控件的value,aps.net对于实现了此接口的控件,会自动从Post来的http参数中获取控件的value,并且调用此接口的LoadPostData函数通知控件处理(填写到自己的实例中),并且这个函数如果返回true还会在page_load事件结束后触发此控件的RaisePostDataChangedEvent方法,这通常就是控件包装成的   xxxChanged   或者   xxxClicked   事件。程序员直接在这些最终事件上写程序,其实就是由这个机制由asp.net控制的。  
   
  IPostBackEventHandler接口则定义除了上面Post上来数据以外的控件“自定义”客户端事件。页面使用   Page.GetPostBackEventReference   等函数输出的脚本命令可以直接被asp.net调用此控件的RaisePostBackEvent方法。例如一个会计凭证控件具有此接口,如果你希望点击一个对象触发它的“记账”功能,就可以这样写代码:  
   
      Ctr.Attributes.Add("onclick",Page.GetPostBackEventReference(凭证,"记账"))  
   
  它运行时就会在Ctr中输出类似   __doPostBack('ctr0_ctr_1','记账')