aspx页面里 Enter回车后页面相应的按钮

本文介绍了如何在ASP.NET的aspx页面上设置Enter键触发指定的按钮事件。当页面上有多个按钮时,可以通过设置Form的DefaultButton属性来决定回车键执行哪个按钮的事件。同时,对于包含ascx控件的页面,可以通过JavaScript函数WebForm_FireDefaultButton来实现按钮的默认触发行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在页面里,当我们输入完数据后,自然而然的会点击回车,之后会去出发你想要的事件,比如搜索.
但如果页面上有多个button时,他会默认到第一个button,这样我们就要给他设置一下了.让他变的随心而意.
每个页面都有一个Form标签,这个Form标签里有个DefaultButton这个属性,文章就在这里了.
1,在同一个编辑页面的情况下,(没有ascx控件).
    <form id="form1" runat="server" defaultbutton="btnSearch2">
        <div>
            <asp:TextBox ID="TextBox 1" runat="server"></asp:TextBox>
            <asp:Button ID="btnSearch1" runat="server" Text="搜索1" OnClick="OnSearch" />
            <asp:Button ID="btnSearch2" runat="server" Text="搜索2" OnClick="OnSearch" />
        </div>
    </form>
这时,你定义defaultbutton到哪个Button ,就执行那个Button .
2.如果defaultbutton想定义到ascx控件中的Button .
Default.aspx页面(Default.aspx页面里有个WebUserControl.ascx控件).
default.aspx:   
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Src="WebUserControl.ascx" TagName="WebUserControl" TagPrefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
    <script type="text/javascript">
    function WebForm_FireDefaultButton(event, target) {
        if (event.keyCode == 13 && !(event.srcElement && (event.srcElement.tagName.toLowerCase() == "textarea"))) {
        var defaultButton = document.getElementById(target);
        if (defaultButton && typeof(defaultButton.click) != "undefined") {
            defaultButton.click();
            event.cancelBubble = true;
            if (event.stopPropagation) event.stopPropagation();
            return false;
        }
    }
    return true;
}
    </script>
</head>
<body>
    <form id="form1" runat="server" οnkeypress="javascript:return WebForm_FireDefaultButton(event, 'WebUserControl1_btnSearch')">
        <div>
            <uc1:WebUserControl ID="WebUserControl1" runat="server" />
        </div>
    </form>
</body>
</html>

WebUserControl.ascx:


<% @ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
<asp:TextBox ID="tbSearch" runat="server"></asp:TextBox>
<asp:Button ID="btnSearch1" runat="server" Text="搜索1" OnClick="OnSearch" />
<asp:Button ID="btnSearch" runat="server" Text="搜索" OnClick="OnSearch" />
3.如果你不想在页面中点击Enter触发事件.
<form id="form1" runat="server" defaultbutton="Button1">
        <div>
            <asp:Button ID="Button1" runat="server" Style="display:none;" OnClientClick="javascript:return false;" />
            <asp:TextBox ID="TextBox 1" runat="server"></asp:TextBox>
            <asp:Button ID="btnSearch1" runat="server" Text="搜索1" OnClick="OnSearch" />
            <asp:Button ID="btnSearch2" runat="server" Text="搜索2" OnClick="OnSearch" />
        </div>
    </form>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值