• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

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

hqywork 2006-05-09 09:59:22
在一个ASP.NET页面中,有一个TextBox及一个按钮,当焦点在TextBox中时,按回车,并没有激活按钮的Click事件,但页面被刷新,通过跟踪,是回发到服务器,但只执行了Load事件,
请问,这到底这个回车是由于什么事件被激活的
...全文
364 点赞 收藏 11
写回复
11 条回复
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技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告