有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);");