有asp.net里面用了form runat=server的表单的时候,里面的<asp:button .. 总不能按个回车提交表单,很是不爽。
现在终于发现了一个属性可以干这个事情,用 this.Form.DefaultButton = "ContentPlaceHolder1$btn";
值得注意的是,如果用了masterPage(模板页),那么要在按钮ID前加上模板的ContentPlaceHolderID和一个美元符($)
相关的代码如下:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="tagSearch.aspx.cs" Inherits="tagSearch" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:TextBox runat="server" ID="wd" ></asp:TextBox><asp:Button ID="btn" runat="server" Text="搜索" OnClick="btn_Click" />
...........................
</asp:Content>
在CS里面
protected void Page_Load(object sender, EventArgs e)
{
this.Form.DefaultButton = "ContentPlaceHolder1$btn";
}
/
如何在ASP.NET页面中,按回车键就执行相应按钮的Click()事件?
这得借助前台的js代码来完成!
①单输入框(文本框)单按钮的实现方法
以下功能实现:在输入框中输入内容之后,按回车键就执行按钮事件!
在.aspx页面的Head区域中添加:
<script type="text/javascript">
function Enter()
{
if(event.keyCode==13)
{
event.keyCode = 9;
event.returnValue=false;
document.getElementById('Button1').click();
//document.all('Button1').click();
}
}
</script>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.TextBox1.Attributes.Add("onkeydown", "Enter(this)");
}
TextBox1.Focus();
}
②多输入框(文本框)多按钮的实现方法
以下功能实现,在不同的输入框中输入内容后,按回车键执行不同的按钮事件!
在.aspx页面的Head区域中添加:
<script type="text/javascript">
function BtnClick(obj)
{
if(event.keyCode==13)
{
if(obj==document.all.文本框ID)
{
document.all.Button1.click();
}
else
{
document.all.Button2.focus();
document.all.Button2.click();
}
}
}
</script>
在页面的cs文件的Load中添加:
this.文本框ID.Attributes.Add("onkeydown", "BtnClick(this);");
this.另外的文本框ID.Attributes.Add("onkeydown", "BtnClick(this);");