在下拉列表上按 Enter 键导致回发
本文关键字:Enter 下拉列表 | 更新日期: 2023-09-27 18:36:09
我的应用程序(asp.net)有几个动态创建的下拉列表,所有这些下拉列表都是AutoPostBack="false"。 如果我从下拉列表中选择项目并按回车键,它会在应用程序中自动回发。我试图处理这个问题 OnKeydown 事件 ,但没有用。
有人可以帮忙吗.
谢谢帕万
按提交按钮会触发页面上的第一个按钮(表单默认按钮)。
在按钮上设置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"];
}
如果您需要任何进一步的澄清,请告诉我。 :)