您的位置:首页 > 编程语言 > ASP

关于asp.net中TextBox里面实现回车触发的解决方案

2010-05-20 09:22 393 查看
最近在做一个项目,在我职责范围之内有一个“”搜索“”功能,实现方案并不难,但却被一些小问题给绊住了,今天总结第一个小问题:如何在textBox里面实现回车触发某个button事件。

网上提供的方案很多,有效的我试过3种:

方案一是完美解决方案:简约而简单。无警告无错误。

Code:

<asp:Panel ID="panSearch" runat="server" DefaultButton="SearchBtn">

<asp:RequiredFieldValidator ID="KeywordsBlank" runat="server" ControlToValidate="KeywordsTextField" ErrorMessage="Required"></asp:RequiredFieldValidator>

<asp:TextBox ID="KeywordsTextField" runat="server" Width="257px" Height="17px"

AutoCompleteType="Search"></asp:TextBox>

<asp:ImageButton ID="SearchBtn" runat="server" Width="22px" Height="18px"

BorderWidth="0" ImageUrl="~/images/search_btn.gif" OnClick="BtnToSearch"

ImageAlign="Middle"/>

<br />

</asp:Panel>

其中的关键是将TextBox和你要关联的Button放在同一个panel里面,用DefaultButton="SearchBtn"来声明要激发的button。

方案二:在textBox里面使用onkeydown方法,这里又分为两种:
一种是直接利用C#的

Code:

<asp:textbox id="t" runat="server" onkeydown="if(event.keyCode==13) btn1.click();FormName.Submit();">

这种也可以实现,但是会有警告说onkeydown不是TextBox的属性。
解决方案是在后台的page load里添加

Code:

t.Attributes.Add("onkeydown","要激发的函数");

然后进行一系列处理,消除警告。
第二种是通过js实现函数功能:

Code:

<script type="text/javascript">

function keyDown()

{

var e=event.srcElement;

if(event.keyCode==13)

{

document.getElementById("Button1").click();

}

}

</script>

</head>

<body>

<form id="form1" runat="server">

<asp:TextBox ID="TextBox1" runat="server" onkeydown="keyDown"></asp:TextBox>

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />

<input style="display:none" />

这一种同样会有上面的警告,同样可以实现功能。

---------------------------------------------------------------------------
在textbox里面添加onkeydown方法的解决方案还需要研究,我暂时还没能消除那个警告。
= =#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: