0

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

有人可以帮忙吗?

谢谢帕万

4

4 回答 4

1

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

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

于 2013-10-21T12:38:55.017 回答
0

你能提供给我们你的代码吗?通过查看您的代码,更容易知道是哪个控件导致了回发。我最好的猜测是,您可能有一个 asp.net 按钮,其属性“UseSubmitBehavior”设置为 true,因此当您按下 Enter 按钮时,该按钮会导致回发。要进一步调查,您可以将这行代码添加到 Page_Load 事件中,以检测哪个控件导致回发

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

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

于 2013-10-21T12:41:18.827 回答
0

为了避免在下拉列表中按回车时回发,添加就足够了

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

但是,如果用户在页面的每个控件中按下回车键,您将遇到同样的问题。禁用整个页面上的回车键这是代码

<body onkeydown = "return (event.keyCode!=13)">
于 2013-10-21T12:30:34.857 回答
0

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

于 2013-10-21T12:17:46.753 回答