ASP.NET 事件(回传)机制
2010-03-20 22:24
295 查看
摘要:
ASP.ENT中,有两种实现页面PostBack的机制,不管是哪种回传方式,最终均是Form表单提交。
一、原始的Form表单提交
WebControls中的Button和ImageButton控件,到客户端会转换为Html代码<inputtype="submit"name=""/>
<inputtype="image"name=""/>
二、利用JavaScript和隐藏表单实现表单提交
除Button和ImageButton外,其他WebControls控件均是以这种方式实现页面回传机制的。具体步骤如下:
1、如果页面中存在除Button和ImageButton外的服务端控件,ASP.NET页面框架会自动在页面中增加两个隐藏表单。
Html代码<inputtype="hidden"name="__EVENTTARGET"id="__EVENTTARGET"value=""/>
<inputtype="hidden"name="__EVENTARGUMENT"id="__EVENTARGUMENT"value=""/>
2、服务端自动生成如下的JavaScript方法,处理事件的发送。
Javascript代码<scripttype="text/javascript">
<!--
vartheForm=document.forms['form1'];
if(!theForm){
theForm=document.form1;
}
function__doPostBack(eventTarget,eventArgument){
if(!theForm.onsubmit||(theForm.onsubmit()!=false)){
theForm.__EVENTTARGET.value=eventTarget;
theForm.__EVENTARGUMENT.value=eventArgument;
theForm.submit();
}
}
//-->
</script>
3、每个会引发服务端事件的控件都会在响应的客户端事件中调用上面的代码。
以<asp:LinkButton>服务端控件为例说明,以下为服务端到客户端的映射:
Html代码<aid="LinkButton1"href="javascript:__doPostBack('LinkButton1','')">LinkButton</a>注意:<asp:Checkbox>、<asp:TextBox>等服务器控件不自动生成在客户端调用JS的__doPostBack方法
4.客户端触发事件后调用__doPostBack方法,将表示触发的控件源的eventTarget和事件参数eventArgument分别付给两个隐藏域__EVENTTARGET和__EVENTARGUMENT,然后提交Form,在服务端根据__EVENTTARGET和__EVENTARGUMENT来判断是哪个控件的什么事件触发了。
ASP.ENT中,有两种实现页面PostBack的机制,不管是哪种回传方式,最终均是Form表单提交。
一、原始的Form表单提交
WebControls中的Button和ImageButton控件,到客户端会转换为Html代码
二、利用JavaScript和隐藏表单实现表单提交
除Button和ImageButton外,其他WebControls控件均是以这种方式实现页面回传机制的。具体步骤如下:
1、如果页面中存在除Button和ImageButton外的服务端控件,ASP.NET页面框架会自动在页面中增加两个隐藏表单。
Html代码
2、服务端自动生成如下的JavaScript方法,处理事件的发送。
Javascript代码
3、每个会引发服务端事件的控件都会在响应的客户端事件中调用上面的代码。
以<asp:LinkButton>服务端控件为例说明,以下为服务端到客户端的映射:
Html代码
4.客户端触发事件后调用__doPostBack方法,将表示触发的控件源的eventTarget和事件参数eventArgument分别付给两个隐藏域__EVENTTARGET和__EVENTARGUMENT,然后提交Form,在服务端根据__EVENTTARGET和__EVENTARGUMENT来判断是哪个控件的什么事件触发了。
相关文章推荐
- asp.net 页面事件:顺序与回传
- ASP.NET事件回传机制
- ★★★【庖丁解牛:纵向切入Asp.net 3.5控件和组件开发技术系列—(5)事件和数据回发机制】★★★
- 深入了解asp.net框架。生命周期以及事件处理机制
- asp.net 页面事件:顺序与回传
- ASP.NET事件回传机制
- asp.net ajax的事件机制小议
- ASP.NET中的事件冒泡机制
- asp.net事件回传机制
- ASP.NET机制详细的管道事件流程(转)
- 【ASP.NET】1.ASP.NET页面事件加载顺序以及Global.asax文件的使用
- 一个看上去简单的问题(1):Asp.Net动态设定事件;
- Asp.net中服务端控件事件是如何触发的
- asp.net:在GridView中添加一列按钮,并实现按钮事件
- 关于asp.net中页面事件加载的先后顺序
- Asp.Net+Jquery.Ajax详解7-全局Ajax事件
- ASP.NET:为 AJAX 请求添加客户端事件
- 关于asp.net中页面事件加载的先后顺序
- 让黑莓blackberry的浏览器支持asp.net的回发机制postback
- ASP.NET事件执行周期