2017-04-14 66 views
0

我有一個帶有SelectedindexChanged事件的asp.net下拉列表,它將根據選定的值改變一些其他控件值。asp.net dropdownlist避免在第一次擊鍵時觸發selectedindexchange

說,下拉列表包含國家列表。現在,用戶通過單擊鼠標打開下拉菜單,然後用戶可以輸入「In」選擇「India」,然後按「Enter」鍵以啓動「SelectedIndexChanged」。哪些是正確/需要的行爲。

但是,當用戶通過按下上一個控件上的選項卡並開始輸入時,例如I(打算輸入IN選擇印度)來達到此下拉列表時,它在第一次擊鍵(I)時觸發SelectedIndexChanged事件,導致更改並將國家/地區設置爲冰島。我們可以避免這個嗎?或在焦點或第一次按鍵時打開下拉菜單。或者其他一些想法?

回答

0

你可以使用一種方法來對付這個問題,雖然有點模糊,但是其上有和display: none;。您可以將下拉活動移至按鈕的OnClick,並在您的下拉菜單丟失焦點時觸發使用JavaScript。

的jQuery

$("#dropdown").focusout(function() {   //When dropdown loses focus 
    var v = $(this).val(); 
    if (v.length) {       //If an item is selected 
     $("#btnHidden").trigger("click");  //Trigger hidden button click 
    } 
}); 

ASP

<asp:DropDownList runat="server" ClientIDMode="Static" ID="dropdown" AutoPostBack="false"> 
    <asp:ListItem text="Select something..." val=""></asp:ListItem> 
    <asp:ListItem text="Choice One" val="1"></asp:ListItem> 
    <asp:ListItem text="Choice Two" val="2"></asp:ListItem> 
</asp:DropDownList> 

<asp:Button runat="server" ClientIDMode="Static" ID="btnHidden" CssClass="hide" OnClick="btnHidden_Click"></asp:Button> 

C#

protected void btnHidden_Click(object sender, EventArgs e) 
{ 
    //Do Dropdown Stuff 
} 
+0

感謝。我會盡力更新你。 –

相關問題