我對以下問題感到憤怒:在我的ASP.NET頁面(目標:.NET 4.0)中,我有以下聲明DropDownList
:SelectetValue不會返回ASP.NET中的選定值DropDownList
<asp:DropDownList ID="cmbRequestState" runat="server" EnableViewState="true">
<asp:ListItem Text="Pending" Value="0"></asp:ListItem>
<asp:ListItem Text="Open" Value="1"></asp:ListItem>
<asp:ListItem Text="Closed" Value="2"></asp:ListItem>
</asp:DropDownList>
在Page_Load
事件代碼隱藏我設置cmbRequestState
值設置爲「2」,例如 - 一切都很好,在瀏覽器在組合框中顯示的值是「關閉」,如HTML各自<option>
標籤具有selected="selected"
屬性。
然後我選擇「打開」並使用我的頁面上的「保存」按鈕執行回發。當我在按鈕的代碼中檢索SelectedValue
的cmbRequestState
時,即使選擇了「1」,它仍然是「2」。
現在我不會經常編寫ASP.NET應用程序,但我確實在HTML和PHP編程方面有一些知識,並且從我的WinForms和WPF背景中,我期望SelectedValue
包含當前選定的值。此外,我不想每次用戶從列表中選擇一個值時執行回發。
我在這裏錯過了什麼?我如何確保在打開頁面時,當前的請求狀態被選中,並且如果用戶進行更改,仍然會得到新的選擇?
你可以添加你的代碼隱藏(至少是Page_Load的相關部分)嗎?聽起來就像你沒有在Page_Load方法中檢查請求是否是回發。你在檢查'IsPostback'嗎? – 2011-04-01 10:29:21
不,我沒有檢查......正如我下面所說:* FACEPALM *,並且也感謝你的答案。 – 2011-04-01 10:36:51
哈哈,起初並不瞭解FACEPALM,認爲這是一個很酷的縮寫,我沒有聽說過:-) – 2011-04-01 10:47:44