当焦点在一个TextBox中时,按回车......

hqywork 2006-05-09 09:59:22
在一个ASP.NET页面中,有一个TextBox及一个按钮,当焦点在TextBox中时,按回车,并没有激活按钮的Click事件,但页面被刷新,通过跟踪,是回发到服务器,但只执行了Load事件,
请问,这到底这个回车是由于什么事件被激活的
...全文
400 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ivee 2006-05-09
类似问题我记得以前曾经回答过。
在FORM中的TEXTBOX框中回车,会触发FORM的SUBMIT事件,这是IE对于HTML语法的解析设计使然,也并非ASP.net特有,在手工编写的纯HTML页面(非.net服务器端生成的HTML)中同样会有此现象。
注意,在文本框中回车触发的是FORM的onsubmit事件,这一点可以在客户端FORM标签行中加onsubmit="javascript:window.alert('Submit?');"来验证。
对于asp.net,因为所有服务器端事件都是通过客户端submit(加上viewstate和event.srcElement)实现的,在TEXTBOX中回车,会触发TEXTCHANGED服务器端事件,点击BUTTON才会触发服务器端Button_Click事件。而PAGE_LOAD是每次都会执行的。
  • 打赏
  • 举报
回复
antiking 2006-05-09
你的代码里怎么没有按钮控件......
  • 打赏
  • 举报
回复
xrwang 2006-05-09
如果你把TextBox不放在FORM里面呢?
请尝试一下。
  • 打赏
  • 举报
回复
hchxxzx 2006-05-09
在asp.net中,所有的textbox的回车事件,均被赋予提交页面的动作,当你在任意一个textbox上做回车动作时,此页面总是会提交.
其实,textbox本身也有提交事件,即TextChanged事件,如果你委托了该控件的TextChanged事件,那么,你即可以通过调试,看到在page_load之后,即会执行TextChanged事件.这个事件即是通常的回车事件.
  • 打赏
  • 举报
回复
webwait 2006-05-09
如果你没有添加其他事件的话,当页面中只有一个textbox的时候,默认回车不会响应botton的click事件,可以添加js脚本来实现回车提交
或者,增加一个隐藏的textbox就可以实现
<asp:TextBox id="TextBox2" runat="server" ReadOnly="True" style="DISPLAY:none;VISIBILITY:hidden"></asp:TextBox>
  • 打赏
  • 举报
回复
hqywork 2006-05-09
我把它删了,但问题同样存在.
我现在就不想要它刷新页面!
  • 打赏
  • 举报
回复
webwait 2006-05-09
你的按钮呢?
  • 打赏
  • 举报
回复
hqywork 2006-05-09
你们可以试试,我是在Window2003 标准版 .net1.1 VS.net2003下做的
  • 打赏
  • 举报
回复
hqywork 2006-05-09
没有,下面是aspx中的源码
<%@ Page language="c#" Codebehind="1.aspx.cs" AutoEventWireup="false" Inherits="NewsSystem.admin._1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:TextBox id="TextBox1" style="Z-INDEX: 101; LEFT: 372px; POSITION: absolute; TOP: 172px"
runat="server"></asp:TextBox>
</form>
</body>
</HTML>
  • 打赏
  • 举报
回复
loveme4180 2006-05-09
mark up
  • 打赏
  • 举报
回复
活靶子哥哥 2006-05-09
可能你设置了AutoPostBack=true 还OnTextChanged事件

关于.Net 1.1内 默认按钮的调用

http://www.aspxboy.com/private/showthread.asp?threadid=307
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

6.0w+

社区成员

.NET技术交流专区
社区管理员
  • ASP.NET
  • R小R
  • 喵叔哟
帖子事件
创建了帖子
2006-05-09 09:59
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。