sure, add an onkeyup event for your textbox, assume you are using IE, tryYourTextBox.Attributes["onkeyup"] = String.Format("javascript:if (event.keyCode == 13) document.getElementById('{0}').click();", YourButton.ClientID);

解决方案 »

  1.   

    没有很好的解决方案。如果不使用ASP.NET倒可以(使用多个FORM来实现)在.NET中只能通过JS代码来实现:假设:TextBox txt1;
    TextBox txt2;Button btn1;
    Button btn2;要让txt1的回车激发btn1,txt2的回车激发btn2,那么:1——
    在页面中定义一个JS函数,用于激发控件的CLICK:<script language=javascript>
    function TxtEnterPress(btnObjName)
    {
      if(event.keyCode==13)
        document.all[btnObjName].click();
    }
    </script>然后在CS代码中:txt1.Attributes["onkeypress"]="TxtEnterPress('"+btn1.UniqueID+"')";
    txt2.Attributes["onkeypress"]="TxtEnterPress('"+btn2.UniqueID+"')";
      

  2.   

    谢谢 saucer(思归/MVP),triout(笨牛)
      

  3.   

    不知怎么了,刚才试了一下,可以,后来又不行了,老是响应第一个button的事件
      

  4.   

    add a button.focus() before calling click() method, for example
    <form runat="server">
    <asp:TextBox id=txt1 runat="server" />
    <asp:Button id="btn1" runat="server" Text="btn1" OnClick="Button_Click" /><asp:TextBox id=txt2 runat="server" />
    <asp:Button id="btn2" runat="server" Text="btn2" OnClick="Button_Click" /><asp:TextBox id=txt3 runat="server" />
    <asp:Button id="btn3" runat="server" Text="btn3" OnClick="Button_Click" /></form>
    <script language="C#" runat="server">
    void Page_Load(Object sender, EventArgs e)
    {
     txt1.Attributes["onkeydown"] = String.Format("javascript:ClickButton('{0}');", btn1.ClientID);
     txt2.Attributes["onkeydown"] = String.Format("javascript:ClickButton('{0}');", btn2.ClientID);
     txt3.Attributes["onkeydown"] = String.Format("javascript:ClickButton('{0}');", btn3.ClientID);
    }void Button_Click(Object sender, EventArgs e)
    {
    Button btn = (Button)sender;
    Response.Write(btn.ID + " is clicked");
    }
    </script><script language="javascript">
    function ClickButton(btnID)
    {
      if (event.keyCode == 13)
      {
       var btn = document.getElementById(btnID);
    btn.focus();
    btn.click();
      }
    }
    </script><%=DateTime.Now%>
      

  5.   

    actually, use onkeydown, and you only need to call btn.focus(), no need to call btn.click()
      

  6.   

    TextBox1.Attributes["onkeydown"] = String.Format("javascript:if (event.keyCode == 13) document.getElementById('{0}').focus();", Button1.ClientID);这样就可以了,谢谢