关于前台调用后台事件__doPostBack函数
关于前台调用后台事件__doPostBack函数
作者:admin 日期:2006-04-11
这里介绍一个常用的函数_doPostBack,这个函数如果如果是ASP.Net render出来的页面就是自动产生这个函数,比如有带autopostback属性的控件,且其属性为true的页面,带编辑列的datagrid页面。
__doPostBack是通过__EVENTTARGET,__EVENTARGUMENT两个隐藏控件向服务端发送控制信息的,__EVENTTARGET为要调用控件的名称,如果要调用的控件是子控件,用''$'或':'分割父控件:子控件,__EVENTARGUMENT是调用事件时的参数
下面演示下如何调用后台事件:
1.新建工程
2.拖入一个服务端Button1,一个DropDownList1和一个客户端Button
3.设置DropDownList1的AutoPostBack属性为True,Button1的Visible为False
4.双击Button1,在事件里写下Response.Write("hello:" );
5.页面的HTML里找到客户端Button,写入οnclick="__doPostBack('Button1','')"
6.编译,运行,点击Button是不是出现了"Hello"
7.查看源代码,发现里面多了下面行
<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>
以及两个隐藏控件
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
值得注意的是,_doPostPack的第一个参数是大小写不敏感的
细心的人会发现,在__doPostBack里,提交调用的是theform.submit(),这样就导致对Form的onsubmit事件校验失效了,幸好这个问题在asp.net 2.0已经修复了。这里提供一个替换的解决办法,在Form的最下面插入下面的代码,这段代码在保证不管是不是render出来的页面均有效
<script language="javascript">
<!--
function __doPostBack_Ex(eventTarget, eventArgument)
{
var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms[0];
}
else {
theform = document.forms[0];
}
if(!theform.__EVENTTARGET)
{
theform.appendChild(document.createElement("<input type='hidden' name='__EVENTTARGET'>"));
}
if(!theform.__EVENTARGUMENT)
{
theform.appendChild(document.createElement("<input type='hidden' name='__EVENTARGUMENT'>"));
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
if ((typeof(theform.onsubmit) == "function"))
{
if(theform.onsubmit()!=false)
{
theform.submit();
}
}
else
{
theform.submit();
}
function __doPostBack(eventTarget, eventArgument)
{
__doPostBack_Ex(eventTarget, eventArgument);
}
}
// -->
</script>
关于前台调用后台事件__doPostBack函数相关推荐
- php前台调用后台方法,JavaScript_JavaScript调用后台的三种方法实例,方法一:直接使用%=%调 - phpStudy...
JavaScript调用后台的三种方法实例 方法一:直接使用调用 前台JS: var methodStr = ""; alert(methodStr); 后头方法: public ...
- ajax调用后台java方法,jquery ajax再次封装,前台调用后台java方法直接返回数据
一,前台js部分代码 /** * bean参数格式:类全限定名.方法名 opt参数格式:键值对 handleResponse:会function类型参数包含一个参数data,为后台返回json数据 ...
- Aasp.net前台调用后台cs变量
转:http://www.xueit.com/html/2009-09/21_4445_00.html 1.Asp.Net中几种相似的标记符号: < %=...%>< %#... % ...
- 微服务 前台调用后台的慢的原因_20年IT农民工分享SpringCloud微服务架构实战文档...
前言 越来越多的企业使用 SpringCloud 实现微服务架构设计.我们可以看到这样一种现象:不管是全新开发,还是系统重构,大家似乎都在争先恐后地使用微服务.对于一个Java开发人员来说,学习微服务 ...
- JavaScript 调用后台事件和方法
一,后台方法: protected string CsharpVoid(string strCC) { return strCC; } javascript 调用 <script langu ...
- Asp.Net前台调用后台变量
1.Asp.Net中几种相似的标记符号: < %=...%>< %#... %>< % %>< %@ %>解释及用法 答: < %#... %&g ...
- .net 前台调用后台方法
后台: public bool CheckName(string strInput) { string sql = "select * from UserTable ...
- 前台调用后台方法,无刷新更新数据
语句的作用:页面注册方法的作用. AjaxPro.Utility.RegisterTypeForAjax(typeof(命名空间.类名)); Default.aspx.cs public parti ...
- 关于datagrid中控件利用js调用后台方法事件的问题
前台调用后台方法除了用button的click事件,还可以用js调用 一.前台页面如图 需求点击这个按钮触发后台事件,从而能够调用存储过程 <epoint:HyperLinkColumn He ...
最新文章
- 在安卓JNI/NDK中使用C++11
- Apache基金会接收阿里RocketMQ为孵化项目
- (转)javascript匿名函数
- 苹果cmsv10整合七牛云播放器插件
- java insert_java获取新insert数据自增id的实现方法
- 针式打印机设置连续打印不分页_打印机的应用与耗材介绍
- SpringMVC-高级参数绑定
- 转载:Windows Mobile 开发资源(精)
- React Native填坑之旅--class(番外篇)
- wamp 增加php 7.2,笔记 : WampServe加装PHP版本(7.2.3)为例
- dweep_极度好玩智力游戏
- Zint生成二维码环境搭建
- Embase,PubMed,Cochrane,WebOfScience,ScienceDirect检索方法
- 计算机用户删除文件找回,电脑上删除的文件如何找回 业内人士分享小技巧
- android 高仿 猿题库,猿题库(com.fenbi.android.gaozhong) - 9.17.2 - 应用 - 酷安
- gitlab代码查看行数
- HTML5中制作彩色圆环的代码,HTML5 五彩圆环Loading加载动画实现教程
- LINUX防火墙开放端口,查看状态,查看开放端口
- 1301 IP地址
- python识图找图_Python实现识别图片中的所有人脸并显示出来