我的应用程序(asp.net)几乎没有动态创建的下拉菜单,它们都是 AutoPostBack="false"。如果我从下拉列表中选择项目并按回车,它会在应用程序中自动回发。我试图处理这个问题 OnKeydown 事件,但没有用。
有人可以帮忙吗?
谢谢帕万
我的应用程序(asp.net)几乎没有动态创建的下拉菜单,它们都是 AutoPostBack="false"。如果我从下拉列表中选择项目并按回车,它会在应用程序中自动回发。我试图处理这个问题 OnKeydown 事件,但没有用。
有人可以帮忙吗?
谢谢帕万
按下提交按钮会触发页面上的第一个按钮(表单默认按钮)。
设置UseSubmitBehavior="False"
在您的按钮上。这将禁用"AutoPostback"
on Enter。这将完全防止 Enter 上的回发。
你能提供给我们你的代码吗?通过查看您的代码,更容易知道是哪个控件导致了回发。我最好的猜测是,您可能有一个 asp.net 按钮,其属性“UseSubmitBehavior”设置为 true,因此当您按下 Enter 按钮时,该按钮会导致回发。要进一步调查,您可以将这行代码添加到 Page_Load 事件中,以检测哪个控件导致回发
if(IsPostback){
var controlName = page.Request.Params["__EVENTTARGET"];
}
如果您需要任何进一步的说明,请告诉我。:)
为了避免在下拉列表中按回车时回发,添加就足够了
<asp:DropDownList ...... onkeydown="return (event.keyCode!=13)"/>
但是,如果用户在页面的每个控件中按下回车键,您将遇到同样的问题。禁用整个页面上的回车键这是代码
<body onkeydown = "return (event.keyCode!=13)">
AutoPostBack="false"
在下拉列表上设置意味着当您更改选择时它不会回发,ASP.NET 表单中的第一个按钮通常是默认选项,因此通过按回车键,您可能正在调用表单submit
按钮。