c# - ENTER 键按下时的 DropDownList 回发未触发服务器端事件

标签 c# asp.net postback

您好!

我有一个简单的导航菜单,由一个 asp:DropDownList 和一个 asp:Button 组成。用户从下拉列表中选择一个项目,然后单击按钮转到新 URL。我希望能够支持用户在选择下拉列表项时按下 ENTER 键,以便它复制行为,就好像他们单击了按钮一样。

这是我目前所拥有的:

<asp:DropDownList ID="ddlMenu"
                  runat="server"
                  onkeypress="if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {__doPostBack('GoButton',''); return false;}" />

<asp:Button ID="btnGoButton" runat="server" onclick="GoButton_Click"/>

按钮的点击代码是:

protected void GoButton_Click(object sender, EventArgs e)
{
    string l_url = ddlMenu.SelectedItem.Value;
    Response.Redirect(l_url);
}

但是,每次我按下 ENTER 键时,页面都会回发,但按钮的客户端事件处理程序不会触发。我错过了什么吗?

最佳答案

您是否尝试过使用默认按钮将控件包装在面板中?我知道它适用于文本框

<asp:Panel runat="server" id="searchPanel" DefaultButton="btnGoButton">
    <asp:DropDownList ID="ddlMenu" runat="server" />
    <asp:Button ID="btnGoButton" runat="server" onclick="GoButton_Click"/>
</asp:Panel>

关于c# - ENTER 键按下时的 DropDownList 回发未触发服务器端事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/521089/

相关文章:

c# - 如何以给定的机会在给定的边界内获得等于给定数字的随机整数?

asp.net - 通过按钮触发 AsyncFileUpload 控件

jquery - 使用 jQuery 时如何解决 ASP.NET Webforms 限制?

c# - 多个提交按钮不会在 aspx 上回发 - 只有最后一个按钮

javascript - 没有javascript的ASP.NET MVC

C# 等效于 Xaml 的 CommandParameter ="{Binding .}"

c# - 从数据库种子方法调用异步方法

c# - 如何将包装器 DLL 连接到 API DLL 以便在 C# 项目中使用?

javascript - 使用键重定向到页面

c# - 如何在特定 <div> 标记中的另一个 aspx 页面中加载一个 aspx 页面