__dopostback

转载:

首先要记住这个函数的前面是两个下划线. __doPostBack= "_" + "_" + "doPostBack".

再介绍一下__doPostBack函数的作用。我们先来看一下_doPostBack函数的内容:

<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE4NDIzMDg2NDRkZMlHJoBQ9CYcWBtBK+zrfZzKoh/i" />
</div>

<script type="text/javascript">...
<!--
var theForm = 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>
<div>
上面这段是直接从含有自动回传功能控件的.net Web页面的HTML源代码里面粘帖过来的。

其中eventTarget 和eventArgument,是两个就是用来存储在回送的时候获取是哪个控件触发了回送,并且带了什么参数。总之,调用__doPostBack函数可以实现客户端控件调用服务器端控件的响应。或者是在javascript里面调用.net的服务器控件事件。这一点可以充分用在子窗口调用父窗口中某个服务器控件的服务器端的事件。

然后我们可以从LinkButton这个控件入手,分析一下 LinkButton的工作流程,就知道__doPostBack的使用方法了。因为微软的LinkButton就是使用__doPostBack函数来达到使用客户端的控件来调用服务器端的函数的。

我们可以运行一个包含有LinkButton的aspx页面,查看他的源代码,发现关于LinkButton这个控件的代码竟然是一个超链接:

aspx中LinkButton的代码:
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">button1</asp:LinkButton>
在html中的源码中被翻译成了:
<a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">button1</a>

上面的代码可以明显的看出,LinkButton只不过就是一个超链接,他的链接就是执行javascript语句通过调用__doPostBack函数来调用服务器端的后台代码的。因此,在有LinkButton的页面,会自动加上上面的__doPostBack函数。

但是在我们调用__doPostBack函数时,有些时候调用这个函数会出现"对象不存在"的脚本错误? 那是因为Html里面没有__doPostBack函数体,一般在拖放那些有自动回传功能的控件时,当把他的autoPostback属性设为True,在运行的时候系统会自动添加__doPostback函数体,当然最直接的办法就是添加一个LinkButton然后把其Text属性设为空,切记不要设Visible属性,因为如果Visible=false,在翻译成Html时,直接就忽略LinkButton的存在了。


以前我 看到 许多关于 此函数的 用法。可是我一直没有成功过。也没有找到原因。

今天 ,突然 发现 我以前没有成功的原因。


那就是 __doPostBack('Button1','') 函数中的第一个参数 必须是控件的名字,就是Name属性的值 而不是 控件的ID!!


如网上 介绍说是:

function pCall()
{
__doPostBack('Button1','');
}

可以直接刷新页面,执行后台代码。 (控件名如果含有":" ,需要预先替换为"$")

即使控件设为隐藏,(如button的visible = false),页面上没有生成button, 仍然可以这样直接使用。


总结 说,此函数 用法要注意的地方太多,

第一, doPostBack 函数名,很特别,他的前面有两个 下划线。而且大小写要区分好。


第二, 第一个参数 必须用 控件的 name 而不是ID。

控件名有个规律是一层一层的将父控件ID用$符号连接起来的。
MyDataGrid是DataGrid的ID,_ctl13是DataGridItem的ID,lbtnV1是这个linkbutton的ID。其实,通过查看源代码可以看出 来的。


第三, 第二个参数 是传给控件的Value值。

其实,第一个参数对应 Request.Form["__EVENTTARGET"]; 第二个参数对应 Request.Form["__EVENTARGUMENT"];


第四, 此函数是DOTNET 的服务器控件产生的。 所以要使用此函数,必须整个页面上至少要有一个控件 可以回传页面。有些控件 的autoPostBack 必须设为TRUE。


其实,dotnet 服务器控件 在页面上产生两个隐藏的控件
一个名为__EVENTTARGET 另一个名为__EVENTARGUMENT

第一个的值是触发事件的控件名

第二个的值是此控件所带的值

转载于:https://www.cnblogs.com/bfy-19/archive/2012/09/04/2670149.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果X可以升级5G吗_苹果x可以用5g网络吗

随着5G网络的逐渐商用&#xff0c;越来越多5G原型机和量产机都即将推出&#xff0c;那么苹果iPhone X能够支持5G网络吗&#xff1f;下面就为您带来苹果iPhone x可以用5G网络吗的相关介绍&#xff0c;希望以上的介绍能够帮助到您。苹果x可以用5g网络吗1、iPhone X并不支持5G网络…

提交显示成功但是没有看到文件_如何向RTThread提交一个BSP?

RT-Thread今天的快速发展和所取得成绩&#xff0c;离不开所有开发者的持续贡献和社区小伙伴的竭力支持。一、前言今年6月&#xff0c;我在一款智能混合型的FPGA芯片上&#xff0c;完成了RT-Thread的移植&#xff0c;并向RT-Thread提交了一个完整的BSP&#xff0c;后续又根据审查…

asterisk语音信箱voicemail.conf

asterisk 里面配置voicemail首先需要在voicemail.conf里面配置mailbox&#xff0c;mailbox的格式如下配置&#xff1a; voicemail.conf: [testmail] ;context edwin>1234, edwin chen, edwintestmail.com ;edwin:用户名&#xff0c;1234:密码&#xff0c;edwinchen :全名…

WinForm中使用WPF的控件

在WinForm中可以使用WPF中的控件&#xff0c;或者由WPF创建的自定义控件&#xff1b; 步骤1&#xff1a;创建WinForm工程&#xff1b; 步骤2&#xff1a;在WinForm工程的解决方案资源管理器中&#xff0c;在刚刚创建的WinForm解决方案中新建或者添加现有的WPF用户控件工程&…

docker php composer 使用_「PHP编程」如何使用Docker制作自己的LNMP/LAMP镜像

LNMP和LAMP是PHP常用的两种运行环境&#xff0c;L代表Linux&#xff0c;N代表Nginx&#xff0c;A代表Apache&#xff0c;M代表Mysql&#xff0c;P代表PHP。在文章《「PHP编程」安装开发环境太烦&#xff1f;告诉你几个简单方法&#xff0c;分分钟搞定》中我们介绍了&#xff0c…

DP问题之 捞鱼问题

捞鱼问题&#xff1a; http://blog.163.com/zhaohai_1988/blog/static/209510085201271743020919/ 模型总结 http://www.cnblogs.com/10jschen/archive/2012/08/19/2646087.html转载于:https://www.cnblogs.com/applebunny/archive/2012/09/04/2670991.html

asterisk配置会议室meetme.conf

meetme.conf: conf > 1001,123456,654321 使用conf标签开始&#xff0c;1001是会议室编号&#xff0c;123456为会议室密码&#xff0c;654321为管理员密码 extensions.conf: ;;;;;;;;;;;;;;;;会议室;;;;;;;;;;;;;;;;;;;;;; exten > 100,1,Playback,your …

中天数相减获得差_Power BI 了解DAX中LASTDATE和MAX之间的区别

许多刚开始使用DAX的小伙伴在使用LASTDATE搜索某个时间段内的最后日期。或者他们使用NEXTDAY检索给定日期之后的日期。尽管这些函数可以实现它们所承诺的功能&#xff0c;但它们并不打算在简单的表达式中使用。相反&#xff0c;它们是设计用于时间智能计算的表函数。错误地使用…

在CentOS下源码安装 Xen并搭建Windows虚拟机

前言 首先要感谢xing的帮助&#xff0c;在他的指导之下才完成环境的搭建&#xff0c;本文档的部分内容来自他的文档。另外&#xff0c;还要感谢——互联网。 1. 环境介绍 Linux: CentOS 6.3 Xen: Xen 4.1.3 Windows: XP 或 2003 2. 安装CentOS 从官网下载CentOS 6.…

python gif_python 将png图片格式转换生成gif动画

先看知乎上面的一个连接 用Python写过哪些【脑洞大开】的小工具&#xff1f; 这个哥们通过爬气象网站的气象雷达图&#xff0c;生成一个gif的动态图。非常有趣且很实用&#xff0c;那咱也实现下。 我们先实现一个从GIF提取帧的代码 我们这有个gif代码如下&#xff1a; from PIL…

HTTP代理原理以及HTTP隧道技术

通过HTTP协议与代理服务器建立连接&#xff0c;协议信令中包含要连接到的远程主机的IP和端口号&#xff0c;如果有需要身份验证的话还需要加上授权信息&#xff0c;服务器收到信令后首先进行身份验证&#xff0c;通过后便与远程主机建立连接&#xff0c;连接成功之后会返回给客…

goland环境配置_Goland辅助工具goimports和gomodules

1、goimports工具goimports工具是Go官方提供的一种工具&#xff0c;它能够为我们自动格式化 Go 语言代码并对所有引入的包进行管理&#xff0c;包括自动增删依赖的包引用、将依赖包按字母序排序并分类。我们在使用Goland IDE的时候&#xff0c;建议使用goimports工具。它具备包…

NSString 中包含中文字符时转换为NSURL

NSString中如果包括中文字符的话转换为NSURL得到的值为nil&#xff0c;在网上搜了下&#xff0c;用stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding可以解决&#xff0c;代码如下&#xff1a;NSString *str [NSString stringWithUTF8String:surl.c_str()]; …

石头剪刀布python代码_python实现石头剪刀布程序

本文实例为大家分享了python实现石头剪刀布的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 概述&#xff1a; 如果你和我一样是一个有着其他语言基础的编程者&#xff0c;那我想这个小程序对于你来说是小case。由于本人初学Python&#xff0c;就先拿这个熟悉熟悉一…

ubuntu/wireshark --Lua: Error during loading: [string /usr/share/wireshark/init.lua]:45问题解决

错误如下&#xff1a; 解决方案&#xff1a;修改init.lua 直接运行wireshark的话会报错&#xff1a; Lua: Error during loading: [string "/usr/share/wireshark/init.lua"]:45: dofile has been disabled 要对其进行修改&#xff0c;终端运行 sudo gedit /usr…

中高德地图只显示某一城市_Excel实用知识:从零开始,一步步制作属于你自己的三维演示地图...

说明本文是视频内容的图文整理版。原版视频可以在文末观看三维地图操作详解这是一份原始表格&#xff0c;点击表内任意一个单元格&#xff0c;使用Ctrl和T&#xff0c;将这张表转换为动态表&#xff0c;点击插入&#xff0c;三维地图。重命名图层为销售地图一&#xff0c;在位置…

HttpModules 管道过滤 自定义页面

IIS里.HTML扩展名默认ASP.NET不做请求管理&#xff0c;如果要在HttpModules中拦截html的请求,从而做一些流量判断或url伪静态重定向的操作,请将IIS的扩展名.HTML映射到“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll” iis管理器 - 站点 - 处理程序映射,增…

Linux软连接和硬链接

1.Linux链接概念 Linux链接分两种&#xff0c;一种被称为硬链接&#xff08;Hard Link&#xff09;&#xff0c;另一种被称为符号链接&#xff08;Symbolic Link&#xff09;。默认情况下&#xff0c;ln命令产生硬链接。 【硬连接】 硬连接指通过索引节点来进行连接。在Linux的…

python内置函数分类_Python 69个内置函数分类总结

1 内置函数 Python3解释器中内置了69个常用函数&#xff0c;属于底层的函数&#xff0c;它们到处可用。有些对大家来说比较熟悉&#xff0c;比如abs(), max(), sum()... 也有一些比较陌生&#xff0c;比如locals(), all(), compile(), getattr()... 今天按照类别扼要总结。 2 类…

pyspark 修改python版本_python – Pyspark从日期到字符串更改列的类型

我有以下数据帧&#xff1a;corr_temp_df[(vacationdate, date),(valueE, string),(valueD, string),(valueC, string),(valueB, string),(valueA, string)]现在我想将列vacationdate的数据类型更改为String,这样数据帧也会采用这种新类型并覆盖所有条目的数据类型数据.例如.写…