- 浏览: 1004981 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (445)
- Java (22)
- J2EE (18)
- Flex (102)
- Flex-blazeds (1)
- Flex-FABridge (2)
- Flex4 (3)
- CheckStyle (2)
- PowerDesigner (0)
- POI (2)
- Java2Word (2)
- 杂项 (15)
- 日记 (3)
- 数据库-oracle (41)
- 数据库-SQLServer (7)
- 中间件 (1)
- 英语 (8)
- C# (43)
- ASP.net (72)
- ASP.net MVC (28)
- 微软-Entity Framework (19)
- JavaScript (22)
- JQuery (31)
- EasyUI (3)
- VS2010 (4)
- CVS (1)
- Tomcat (3)
- Linux (1)
- 遗留问题 (1)
- iphone (1)
- MAC (0)
- 系统 (2)
- Web Service (4)
- Cache Manager (1)
- PMP (1)
- WCF (10)
- BootstrapJs (1)
- Web API (6)
- Go语言 (0)
- 网络协议 (2)
- Redis (10)
- RabbitMQ (10)
- Git (3)
- Kafka (5)
- ELK (5)
- Nginx (3)
- 测试 (2)
最新评论
-
ygm0720:
Table行拖拽自己实现 -
程乐平:
Flex4开发视频教程(27集)下载http://bbs.it ...
Flex4教程 -
liuweihug:
Jquery+asp.net 后台数据传到前台js进行解析的办 ...
AJAX $.toJSON的用法或把数组转换成json类型 -
weilikk:
谢谢谢谢!!
javascript IE下不能用 trim函数解决方法 -
gxz1989611:
vigiles 写道请问楼主:[Fault] exceptio ...
blazeds推送技术至Flex
其实,__doPostBack是一个很简单的脚本函数.代码如下:
//__doPostBack <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); }
原来是在submit上做文章啊.microsoft呈现给我们的就是这种精巧的思维!
我看到,asp.net现在页面上添加了两个hidden input,这两个input分别用来存放触发postback的control的ID和参数.这就是我们大部分人认识到的:
__doPostBack(obj1,obj2)的第一个参数是控件ID,第二个参数是postback的参数.然后就可以在后台用Request.Form["__EVENTTARGET"]和 Request.Form["__EVENTARGUMENT"]取得控件ID和参数.
不过,另外要注意的就是asp.net的webcontrols中,Button或其它***Button,如ImageButton就特殊了,它们不是利用 __doPostBack来实现postback的.为什么这样,可能因为Button在html中本来就是有触发submit事件的功能吧.asp.net不过是要令原来html中一些不能触发submit的东西submit,才弄出了__doPostBack来实现吧.
所以如果是Button的postback,在后台是不能用Request.Form["__EVENTTARGET"]和Request.Form["__EVENTARGUMENT"]取得控件ID和参数的.那么,怎么取呢?看代码:
//取Button foreach (string str in Request.Form) { Control c = Page.FindControl(str); if (c is Button) { control = c; break; } }
上述写法可以在后台找到Button.在Button的提交过程中,Button会将Button本身的ID作为Request.Form的一个Key,它的Value是Button的 Text属性值,回传给服务器.所以可以在后台循环Form.Keys取到所提交的Button,以执行相应的函数.ImgButton也差不多,不同就在于,它不是用ImageButton的ID作为Request.Form的Key,它是用ImageButton的ID加上.x和.y作为Key,在 Request.Form添加两上键值对,这两个键值应该是对应ImageButton的图片大小的,了解了这个规律后,我们仍然可以通过一定的方式得到是否是由ImageButton引发的PostBack.
通过获取到提交过来的控件ID后, Asp.net就能找到对应注册了事件的控件,并触发事件了.
发表评论
-
DotNet 资源大全(下)
2018-07-12 10:18 531HTML 和 CSS(HTML and CSS) ... -
DotNet 资源大全(上)
2018-07-12 10:17 669API 框架 NancyF ... -
asp.net mvc处理css和js版本问题
2018-05-24 16:40 1325当服务的修改了js和css内容后,发布到II ... -
分布式系统调用链监控
2018-02-22 14:36 826分布式系统调用链监 ... -
IIS 优化
2017-06-28 21:57 1574通过对IIS7的配置进行优化,调整IIS7应用池的队列长度, ... -
IIS初始化(预加载),解决第一次访问慢,程序池被回收问题
2017-06-28 21:39 2018读在最前面: 1、本文以IIS8,Windows Se ... -
使用C# 和Consul进行分布式系统协调
2017-05-11 10:41 1246随着大数据时代的到来,分布式是解决大数据问题的一个主要手段, ... -
查看IIS上面的每个网站分别用了多少内存
2017-05-05 12:57 842IS服务器上面运行了多个网站,想查看每个网站具体使用了系统多 ... -
Asp.net WebApi版本控制
2017-03-06 10:34 793关web api的版本控制网上有很多,如Web API 版本 ... -
.Net下RabbitMQ的使用(9) -- 在WCF下使用RabbitMQ
2016-12-19 10:42 975RabbitMQ .net客户端通过自定义的Binding ... -
.Net下RabbitMQ的使用(8) -- 远程过程调用RPC
2016-12-19 10:42 1013RPC是在计算中是一种 ... -
.Net下RabbitMQ的使用(7) -- 消息的传输控制
2016-12-19 10:41 932前文中也多次提到消息传输的一些概念,这一篇比较全面的介绍一 ... -
.Net下RabbitMQ的使用(6) -- 持久化
2016-12-19 10:41 712消息的持久化是消息 ... -
.Net下RabbitMQ的使用(5) -- 路由机制
2016-12-19 10:41 496理清路由机制是了解RabbitMQ来龙去脉的关键。在前面的 ... -
.Net下RabbitMQ的使用(4) -- 订阅和发布
2016-12-16 10:26 1096消息的订阅和发布是使 ... -
.Net下RabbitMQ的使用(3) -- 竞争的消费者
2016-12-16 10:23 2424在上一篇文章中,演示了一个发送者和一个消费者的情况。这一篇介 ... -
.Net下RabbitMQ的使用(2) -- 发送接收消息
2016-12-16 10:20 1210在安装和配置完成Rabbit ... -
RabbitMQ消息队列(一): Detailed Introduction 详细介绍
2016-12-16 10:12 5671. 历史 RabbitMQ是 ... -
RabbitMQ 安装和监控
2016-12-16 10:14 816在Windows上安装Rabbit MQ 指南,最好的是这 ... -
Autofac创建实例的方法总结
2016-12-07 14:54 5271、InstancePerDependency 对每一个依 ...
相关推荐
.Net4.0下ASP.NET在IE10以上版本访问的时候,遇到分页或者控件回发的时候会提示doPostBack未定义,这个补丁是用来在服务器端修正这个问题,安装完需要重启。如不想在服务器修正,可以看...
doPostBack介绍和弹出窗体与父窗体之间的传值! doPostBack介绍和弹出窗体与父窗体之间的传值! doPostBack介绍和弹出窗体与父窗体之间的传值!
.Net4.0下ASP.NET在IE10以上版本访问的时候,遇到分页或者控件回发的时候会提示doPostBack未定义,这个补丁是用来在服务器端修正这个问题,安装完需要重启。如不想在服务器修正,可以看 ...
针对.Net4.0的网站在IE10、IE11出现“__doPostBack未定义”的解决办法
解决asp.net 在IE11下出现 “__doPostBack”未定义”的问题. 使用方法:解压后复制到网站根目录即可
不好意思,压缩包中的__doPostBack事件绑定有误,现在改正了,并且加入了ie不支持max-height css属性的纠正,并且前一压缩包没把用到的数据源DB.xml包含进去。 非常抱歉,但是好像不能覆盖原来的文件,故重发一个...
我用在2008r2 上没用,后来用的App_Browsers文件夹的方式解决的,这个应该针对有一些也应该有用。 网上方法三的文件,直接放到网站根目录下就可以了。下载链接;...
.Net4.0下ASP.NET在IE10以上版本访问的时候,遇到分页或者控件回发的时候会提示doPostBack未定义,这个补丁是用来在服务器端修正这个问题,安装完需要重启。如不想在服务器修正,可以看...
基于 ExtJS 的开源 ASP.NET 控件库。 FineUI的使命 创建 No JavaScript,No CSS,No UpdatePanel,No ViewState,No WebServices 的网站应用程序。 支持的浏览器 IE 8.0 、Chrome、Firefox、Opera、Safari bulid...
先解压缩到服务器,然后安装,安装完毕需重启服务器。
文件先解到服务器,再安装,安装完毕后需重启服务器。
__doPostBack是一个纯粹并且是非常简单的javascript函数,大部分的页面PostBack都是由它触发的。
doPostBack机制深入了解 源码实例 对doPostBack机制不清楚的看此实例会豁然开朗
问题是服务器版的.Net40的补丁没有打上,ASP.NET 可能无法辨识出一些浏览器的最新版本,还会经常把它们看做是低级的浏览器,不支持JAVASCRIPT。
net的
关于前台调用后台事件__doPostBack函数
我的项目中,服务器端是Windows Server2008 64位,.net版本是4.0,遇到了树形结构控件、DropDownList控件等不能调用服务器端代码。最后发现js报错。 错误信息:“__doPostBack”未定义,需要在无服务器上打补丁或者...
文件先解压到服务器,然后再安装,安装完毕后需要重新启动服务器。
大家都很惊叹微软的Ajax.NET简单的操作,但是有没有觉得它的灵活性大大减小了呢? 以前纯手写的xmlhttm的Ajax和AjaxPor.dll提供的Ajax都是非常灵活的,可以使用任意 的客户端触发方式(onclick,onmouseover,onkeydown...