都是ImageButton惹的祸!

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