.net 流氓
天下无难事,有志者成之;天下无易事,有恒者得之。

 最近在项目开发做了一个小功能,回车调用后台事件,现在拿出来跟大家分享一下:
前台代码:

    <script type="text/javascript">
//为TextBox指定回车时执行的Button按钮事件
function enterPressExecuteButtonAction(textBoxID, buttonID) {
if (event.keyCode == 13) {
//获取按钮事件
var func = document.getElementById(buttonID).click;
document.getElementById(buttonID).focus();
func();
//调用事件
event.returnValue = false;
}
}
//为TextBox屏蔽回车事件
function EnterEventsAction() {
if (event.keyCode == 13) {
event.keyCode = 0;
event.returnValue = false;
}
}

</script>

        <asp:TextBox ID="TextBox1" runat="server" onload="TextBox1_Load" ></asp:TextBox>
    
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button"  />
后台代码:

        //按钮事件
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(
"ni hao 123");
}
//加载事件
protected void TextBox1_Load(object sender, EventArgs e)
{//调用了TextBox扩展方法
TextBox1.RegisterPressEnterAction(
this.Button1,ButtonType.Button);
}

还有一个TextBox扩展方法类

 public static class TextBoxExtension
{
/// <summary>
/// 为TextBox指定回车时执行的按钮事件
/// </summary>
public static void RegisterPressEnterAction(this TextBox textBox, WebControl button, ButtonType buttonType)
{
switch (buttonType)
{
case ButtonType.Button:
textBox.Attributes.Add(
"onkeypress", String.Format("enterPressExecuteButtonAction(this.id,'{0}');", button.ClientID));
break;
case ButtonType.Image:
break;
case ButtonType.Link:
textBox.Attributes.Add(
"onkeypress", String.Format("enterPressExecuteLinkButtonAction(this.id,'{0}');", button.ClientID));
break;
default:
break;
}
textBox.Attributes.Add(
"onfocus", "javascript:this.select();");
}
public static void RegisterPressEnterAction(this TextBox textBox, string button, string buttonType)
{
switch (buttonType)
{
case "Button":
textBox.Attributes.Add(
"onkeypress", String.Format("enterPressExecuteButtonAction(this.id,'{0}');", button));
break;
case "Image":
break;
case "Link":
textBox.Attributes.Add(
"onkeypress", String.Format("enterPressExecuteLinkButtonAction(this.id,'{0}');", button));
break;
default:
break;
}
textBox.Attributes.Add(
"onfocus", "javascript:this.select();");
}
/// <summary>
/// 为TextBox指定回车时执行的按钮事件
/// </summary>
public static void RegisterPressEnterAction(this TextBox textBox)
{
textBox.Attributes.Add(
"onkeypress", "EnterEventsAction();");
textBox.Attributes.Add(
"onfocus", "javascript:this.select();");
}
}

希望对大家有帮助!

posted on 2011-08-04 09:33  .net 流氓  阅读(3583)  评论(1编辑  收藏  举报