vs2005 + IE 6.0以上浏览器
---------------------------------
界面如图所示
代码:
- //命名空间引用略去
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- TextBox1.Focus();
- }
- protected void Button1_Click1(object sender, EventArgs e)
- {
- Button1.Text = "fff";
- }
- }
可以看出,非常的简单
目的就是按下提交按钮后,显示一串文字
好,让我们看看实际的运行效果,点下按钮,很正常,按钮的文字被简单替换掉,如图
好象一切都很正常!
可是如果我们按的是回车键,则功能被没有执行!
但从状态条上可以知道,页面数据是被回传的
如果在Form_Load里设下断点,可以看得出来,它是有进入的,说明成功提交了
但如果在Button1_Click上设断点,可以看到,并没有进入,自然也就没有引发点击事件
------------------------------------------------------------------------------
好,如果上面的说法你不以为然的话,那么我们接着看
我随便放了一个TextBox(甚至只放一个input的 text标记都可以,注意,图中所示)
不用编辑任何代码
重新运行...
直接按回车,状态栏一闪而过
呵,这回却能正确的被替换了文字,如图所示
未改动任何代码,仅仅只是加了一个input text 效果就变化这么大,不知道是IE还是asp.net类的问题
因为手头没有别的浏览器,所以没有在别的上面做过测试
但用HttpWatch软件可以看出,前后两次提交数据上的有区别
即 第一次 中 并没有出现 button=
第二次却有,虽然value并没有值,但似乎这句话的出现导致的结果却有很大差异
--------------------------------------------------------------------------------------------------------------------------------------------
补充:
经过安装FireFox,发现它却可以正确的完成功能,所以结论:
应该是IE无法正确的产生回发的数据,如button=,从而导致服务器页无法正确的处理按钮click事件