2013-10-21 24 views
0

我的应用程序(asp.net)有很少的下拉动态创建,所有这些都是AutoPostBack =“false”。如果我从下拉列表中选择项目,然后按Enter键,则会在应用程序中自动回发。我试图解决OnKeydown事件的这个问题,但没有使用。按下输入在Dropdownlist导致回发

有人可以帮助。

感谢 帕

+1

你为什么按下'Enter'?这可能会触发您网页上的第一个提交按钮。 –

+0

输入可能会触发第一个提交按钮。你可以提供你的代码 –

+0

嗨Chandan,我发现问题,Page.Form.DefaultButton是在我的用户控制之一...你可以建议我,如果我有多个用户控件加载,每个人都有自己的按钮需要配置为默认按钮 –

回答

1

按提交按钮触发页面上的第一个按钮(窗体默认按钮)。您的按钮上设置为UseSubmitBehavior="False"。这将禁用Enter上的"AutoPostback"。这可以防止完整回车。

0

在下拉列表中设置AutoPostBack="false"意味着当你改变选择也不会回来后,在ASP.NET表单的第一个按钮通常是默认选项,以便按返回你可能调用你的表格submit按钮。

0

为了避免回发时按下的下拉列表中选择它shuld足以补充

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

但是,如果用户按下页面的每一个控制里面的回车键,你将有本质上相同的问题。在整个页面上禁用回车键这是代码

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

您能否提供我们的代码?通过查看代码可以更容易地知道哪个控件导致回发。 我最好的猜测是,你可能有一个asp.net按钮的属性“UseSubmitBehavior”设置为true,所以当你按下输入按钮是什么导致回发。 为了进一步研究,你可以这行代码添加到您的Page_Load事件,以检测其控制造成回发

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

请让我知道如果你需要任何进一步澄清。 :)

+0

我发现问题,Page.Form.DefaultButton是否存在于我的一个用户控件中...如果我有多个用户控件加载并且每个用户都有自己的按钮需要配置为默认按钮,您能否建议我 –

+0

您好, 检查当前usercontrol是否是activecontrol(如果其中一个控件是焦点的)在usercontrol中的每个控件的焦点上,则将Page.Form.DefaultButton设置为UseSubmitBehavior。 我不真的推荐这个,我会从所有的控件中删除UseSubmitBehavior,并等待用户通过鼠标点击来提交 –

相关问题