2013-10-21 22 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,並等待用戶通過鼠標點擊來提交 –

相關問題