在下拉列表上按 Enter 键导致回发

本文关键字:Enter 下拉列表 | 更新日期: 2023-09-27 18:36:09

我的应用程序(asp.net)有几个动态创建的下拉列表,所有这些下拉列表都是AutoPostBack="false"。 如果我从下拉列表中选择项目并按回车键,它会在应用程序中自动回发。我试图处理这个问题 OnKeydown 事件 ,但没有用。

有人可以帮忙吗.

谢谢帕万

在下拉列表上按 Enter 键导致回发

按提交按钮会触发页面上的第一个按钮(表单默认按钮)。

在按钮上设置UseSubmitBehavior="False"。这将禁用 Enter 上的"AutoPostback"。这将完全防止在 Enter 时回发。

在下拉列表中设置AutoPostBack="false"意味着当您更改选择时它不会回发,ASP.NET 表单中的第一个按钮通常是默认选项,因此通过按 Return 键,您可能会调用表单submit按钮。

为了避免在

下拉列表中按回发时按回发,添加应该就足够

<asp:DropDownList ...... onkeydown="return (event.keyCode!=13)"/>

但是,如果用户在页面的每个控件中按 Enter 键,您将遇到同样的问题。 要禁用整个页面上的 Enter 键,请遵循以下代码

<body onkeydown = "return (event.keyCode!=13)">

你能向我们提供你的代码吗?通过查看代码,可以更轻松地了解哪个控件导致回发。我最好的猜测是,您可能有一个 asp.net 按钮,其属性"UseSubmitBehavior"设置为 true,因此当您按 Enter 时,按钮是导致回发的原因。若要进一步调查,可以将此行代码添加到 Page_Load 事件中,以检测导致回发的控件

if(IsPostback){
var controlName = page.Request.Params["__EVENTTARGET"];
}

如果您需要任何进一步的澄清,请告诉我。 :)