2015-06-04 44 views
0

我有一個下拉列表下拉列表不會改變的SelectedValue在服務器端

<asp:DropDownList ID="ddlNationality" runat="server" ClientIDMode="Static"> 
           </asp:DropDownList> 

在文件準備好我設置

ddlNationality.selectedIndex = -1; 

的展現給用戶沒有選擇

更改值,然後單擊一些後在服務器端的按鈕我的選擇值一直爲零,在我改變javascript中的選定值後,我檢查選定的值是否已更改,所有我確定,但o服務器端選定的值不是改變了,如何繼續?

我可以在沒有任何價值,並沒有文字此下拉列表的第一個項目插入,但我想在下拉列表只是我沒有明確的領域

+0

我發現了一些使用隱藏字段的解決方法[這裏] [1] [1]:http://stackoverflow.com/questions/14073523/setting-dropdownlist-server-control-using-jquery-doesnt-change-selectedvalue – Alex

回答

0

值看起來像你缺少屬性AutoPostBack="true"

+0

如果我設置自動回發到真,在此之後每更改下拉列表值頁面刷新 – Alex

+0

你必須以某種方式通知服務器,如果你不喜歡舊頁面刷新,那麼也許使用ajax? – uowzd01

+0

如果我沒有設置ddlNationality.selectedIndex = -1;在JavaScript的所有作品OK – Alex

0

當你不會回發並更改客戶端中的dropdownlist的值,因此無法通知asp.net。

創建一個隱藏字段:

<input id="MyHiddenField" type="hidden" runat="server" class="my-hidden-field" value="" /> 

當你正在改變價值客戶將值設置爲隱藏字段:

$(document).ready(function() { 
    $('select.my-ddl-class').on('change', function() { 
     $('.my-hidden-field').val(this.options[this.selectedIndex].value); 
    }); 
}); 

然後,在後臺代碼,而不是得到的DropDownList選擇值,讀取隱藏字段值:

selectedValue = int.Parse(MyHiddenField.Value); 
相關問題