textboxonkeydown="if(event.keyCode==13)submit_click"

解决方案 »

  1.   

    Page_Load事件中写入:
    If Not Page.IsPostBack Then
       al.Attributes.Add("onkeydown", "if(event.keyCode==13) document.formname.submit();")
    End Ifformname 为你的表单名,在<form runat="server">中指定。
      

  2.   

    <%@ Page Language="C#" AutoEventWireup="true" enableviewstate="false" %>
    <script language="C#" runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
    pwd1.Attributes.Add("onkeydown","if(event.keyCode==13) document.all.a1.click()");
    if(Request.RequestType=="POST"){
    if(Request["pwd1"]=="ceo")
    label1.Text="You are good!";
    else
    label1.Text="error!";
    }
    }
    </script>
    <html>
    <head>
    <title>Untitled Document</title>
    </head>
    <body>
    <form runat="server" id=f>
    <asp:textbox ID="pwd1" runat="server"/><br>
    <asp:button ID="a1" Text="ok"  runat="server"/>
    <asp:label ID="label1" runat="server"/>
    </form>
    </body>
    </html>
      

  3.   

    .net sdk这样说:处理客户端和服务器代码中的 Click 事件如果要在客户端和服务器上处理事件,有一个事件会给您带来麻烦,它就是客户端 onclick 事件。之所以会出现问题,是因为所有按钮服务器控件(以及其他 AutoPostBack 属性设置为 true 的控件)都会将页提交到服务器。但是,在 HTML 中,只有少数几个控件本来就会提交窗体: HTML 提交按钮 (<INPUT type=submit>),即类型设置为 Submit 或 Image 的 HtmlInputButton 控件。 
    Button Web 服务器控件 (<asp:button>)。 
    对于其他所有被指定为提交页的控件,会将一个小的客户端脚本写入页中,并在该控件被单击时调用此脚本来提交窗体。因此,这些控件已使用客户端 OnClick 事件来调用此提交脚本。可以为所有控件创建客户端 OnClick 处理程序,但需要选择使用每种控件的方式。下表总结了针对不同类型的控件采用的策略。控件                            策略 
    HtmlInputButton,包括类型设置为 Submit、Reset 或 Image 的 HTML 服务器控件按钮 为该控件在 HTML 语法中包含一项 onclick 属性: 
    <INPUT Type="Submit" Runat="Server" Value="caption" onclick="clientfunction()"  ...>
    在服务器端,这些类型的按钮会引发 ServerClick 事件,而不是简单的 Click 事件。首先会引发客户端事件,然后提交窗体并处理服务器事件。
     
    其他所有 HTML 控件(默认情况下不提交窗体的 HTML 控件) 为该控件在 HTML 语法中包含一项 onclick 属性,并在该属性后添加一个分号 (;): 
    <INPUT Type="Button" Runat="Server" Value="caption" onclick="clientfunction();"  ...>
    这样,在调用客户端提交脚本之前,将首先调用您的函数。
     
    Web 服务器控件,包括按钮 (<asp:button>) 和其他控件(例如 <asp:checkbox>) 不能在 HTML 语法中为 Web 服务器控件指定客户端事件,而应在运行时使用如下服务器代码将事件属性添加到该控件中: 
    Button1.Attributes.Add("onclick", "clientfunction();")
    注意 对于 Button Web 服务器控件无需添加分号,因为该控件会自动提交页。 
      

  4.   

    真的谢谢!可是为什么在IE5下面运行不正常呢?
    好像是不认识document.all.a1
    有没有更好的方法,在IE5下动作正常的
      

  5.   

    从其它地方得到孟子的解答,在IE5下也行。
    <%@ Page Language="C#" AutoEventWireup="true"%>
    <script language="C#" runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
      pwd1.Attributes.Add("onkeydown","if(event.keyCode==13) document.all.f.submit()");
      if(Request.HttpMethod=="POST")
      {
       label1.Text=Request.Form["pwd1"];
      }
    }</script>
    <html>
    <head>
    <title>Untitled Document</title>
    </head>
    <body>
    <form runat="server" id=f>
    <asp:textbox ID="pwd1" runat="server"/><br>
    <asp:button ID="a1" Text="ok" runat="server" AutoPostBack="false"/>
    <asp:label ID="label1" runat="server"/>
    </form>
    </body>
    </html>
      

  6.   

    在后台代码中这样写:void Page_Load(object src,EventArgs e){
    pwd1.Attributes.Add("onclick","if(event.keyCode==13){"+Page.GetPostBackEventReference(this.al)+"}";
    }上面的代码如果在页面上有验证控件并且按钮al的CausesValidation没有设为false时会有问题,需要适当修改。--------------------------------
    AspNetPager 免费分页控件4.2版发布,同时发布最新源代码,欢迎下载:http://www.webdiyer.com