2013-04-29 64 views
0

我正在向asp.net下拉列表中添加一個新選項,並且選擇此選項。當頁面回發時,通過JQuery添加和選擇的選項不會反映在後面的代碼中。可能是什麼問題。ASP.NET WebForms下拉式JQuery設置selectedIndex不反映在回發中

代碼下面添加選項和選擇:

回發之前
$("#DdlProductType").prepend($('<option>', { value: 'ALL', text: 'All' })); 
$("#DdlProductType").prop('selectedIndex', 0);     

右,JavaScript警告顯示所選擇正確的選項(ALL,索引0)。但是,當從代碼後面檢索所選文本和DdlProductType索引時,會選擇另一個項目。我猜這與viewstate沒有更新有關。

謝謝。

+0

認爲您需要在初始加載時在代碼中添加ALL選項。 – cgatian 2013-04-29 03:18:05

+0

ALL位於初始加載列表中。我只是動態地添加/刪除所有取決於某些條件。 – rro 2013-04-29 03:53:40

+1

您需要從服務器端執行此操作。 [看看這裏](http://stackoverflow.com/questions/228969/invalid-postback-or-callback-argument-event-validation-is-enabled-using-page) – mshsayem 2013-04-29 03:59:50

回答

0

你說得對,asp.net inbuild控件使用視圖狀態來自動序列化它並填充回代碼後面的代碼。在客戶端添加的任何項目都不會更新視圖狀態,因此,您沒有在服務器端獲取該值。這樣做的一種方法是使用UpdatePanel,並在服務器端添加下拉列表的值。還有一種可能的方式(我還沒有完全測試過)是使用正常的下拉列表,並在服務器上運行true。

相關問題