C# 在Dropdownlist上按Enter键导致回发
我的应用程序(asp.net)有几个动态创建的下拉列表,它们都是AutoPostBack=“false”。如果我从下拉列表中选择项并按enter键,它将在应用程序中自动回发。我试图在keydown事件上处理这个问题,但没有用 有人能帮忙吗 谢谢C# 在Dropdownlist上按Enter键导致回发,c#,javascript,asp.net,.net,.net-4.0,C#,Javascript,Asp.net,.net,.net 4.0,我的应用程序(asp.net)有几个动态创建的下拉列表,它们都是AutoPostBack=“false”。如果我从下拉列表中选择项并按enter键,它将在应用程序中自动回发。我试图在keydown事件上处理这个问题,但没有用 有人能帮忙吗 谢谢 在下拉列表中设置AutoPostBack=“false”意味着当您更改选择时,它不会回发,ASP.NET表单中的第一个按钮通常是默认选项,因此按return键可能会调用表单的“提交”按钮。在下拉列表中按enter键时,为了避免回发,应该添加足够的按钮 &
在下拉列表中设置
AutoPostBack=“false”
意味着当您更改选择时,它不会回发,ASP.NET表单中的第一个按钮通常是默认选项,因此按return键可能会调用表单的“提交”按钮。在下拉列表中按enter键时,为了避免回发,应该添加足够的按钮
<asp:DropDownList ...... onkeydown="return (event.keyCode!=13)"/>
但是,如果用户在页面的每个控件中按enter键,您也会遇到同样的问题。要在整个页面上禁用enter键,请执行以下代码
<body onkeydown = "return (event.keyCode!=13)">
按提交按钮将触发页面上的第一个按钮(表单默认按钮)
在按钮上设置
使用submitbehavior=“False”
。这将禁用Enter上的“自动回发”。这将完全阻止Enter上的回发。您能为我们提供您的代码吗?通过查看代码,可以更容易地知道是哪个控件导致了回发。
我的最佳猜测是,您可能有一个asp.net按钮,其属性“UseSubmitBehavior”设置为true,因此当您按下enter键时,该按钮就是导致回发的原因。
为了进一步调查,您可以将这行代码添加到Page_Load事件中,以检测导致回发的控件
if(IsPostback){
var controlName = page.Request.Params["__EVENTTARGET"];
}
如需进一步澄清,请告知我。:) 为什么要按Enter键?它可能会触发页面上的第一个提交按钮。enter可能会触发第一个提交按钮。你能提供你的代码吗Hi Chandan,我发现了问题,Page.Form.DefaultButton在我的一个用户控件中。。。如果我加载了多个用户控件,并且每个控件都有自己的按钮需要配置为默认按钮,你能建议我吗?我发现问题,Page.Form.DefaultButton在我的一个用户控件中。。。如果我加载了多个usercontrol,并且每个都有自己的按钮,您可以建议我是否需要将当前usercontrol配置为默认buttonHello,检查当前usercontrol是否是活动控件(如果其中一个控件已聚焦)在usercontrol中的每个控件的焦点上设置Page.Form.DefaultButton以使用SubmitBehavior。我并不建议这样做,我会从所有控件中删除UseSubmitBehavior,然后等待用户通过鼠标单击提交