都是ImageButton惹的祸!

本文解决了一个.NET中ImageButton导致的事件被触发两次的问题。该问题仅发生在ImageButton被包含在其他容器控件内时。通过更换为HyperLink并设置图片及客户端回发脚本来解决。
      前段时间自己写了个工具栏控件,却发现有时点击工具栏按钮时,对应的事件会被执行两次,但并不是每次都会。
      通过调试检查代码,并没有发现错误,并且页面的响应也完全正常,但就是事件会执行两次。百思不得其解,于是就上网寻找答案,结果发现网上介绍此乃是.Net的一个bug(详细请参考: http://www.cnblogs.com/bluewater/archive/2006/11/21/567871.html),ImageButton会导致传递IE向IIS服务器POST两次数据,其中第一次传回服务器的数据缺少鼠标指针位置数据,第二次传回服务器的数据是正确的。( 注:经测试发现,只有将ImageButton放在其他容器控件的内部时才会发生这样的事情,如果单独使用并不会),导致控件中的事件也响应了两次。既然如此又想要ImageButton的美观,又要能完成事件,于是就将ImageButton更改成了HyperLink,设置其图片地址,并且将其客户端OnClick事件连接上回发脚本即可实现事件。
 
     在此提醒大家一下,使用ImageButton作为其他控件的子控件时需要注意,为了避免出现莫名错误,建议还是在其他控件内部不要使用ImageButton,直到微软有补丁推出。

转载于:https://www.cnblogs.com/chenql/archive/2007/02/05/641341.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值