数据回传

数据回传其实就是把web表单提交给服务端,asp.net运行时会将表单封装成一个NameValueCollection,name就是表单域的name属性,所以要实现回传就要为控件提供name属性,而value就是表单域的值。页面处理到processpostdata过程中,遍历所有子控件,如果子控件实现IIPostBackDataHandler接口,页面就会把该控件对应的名称和整个NameValueCollection做为参数,调用控件的LoadPostData()方法。因此所有实现了IPostBackDataHandler接口的控件都会获得回传表单的数据的机会。
在进一步的说,可以在LoadPostBack()方法判断回传的值与控件的值是否相等,不过不等,可以让LoadPostData()方法返回true值,此时页面会记下该控件数据发生了变化,在所有控件都加载完回传数据后,页面将在RaiseChangedEvent过程调用LoadPostData()方法返回true的控件的RaisePostDataChangedEvent()方法。在RaisePostDataChangedEvent()方法里,我们可以根据需要触发相应的控件事件.
IPostBackDataHandler接口需要实现的两个方法:
LoadPostData():处理页面教过来的页面数据
RaisePostDataChangedEvent():如果LoadPostData()方法返回true,则此方法将被调用。此方法通常用来触发控件的事件
原文地址:https://www.cnblogs.com/JackWang/p/1123672.html