簡體   English   中英

SelectetValue不返回ASP.NET DropDownList中的選定值

[英]SelectetValue does not return the selected value in ASP.NET DropDownList

我對以下問題感到非常生氣:在我的ASP.NET頁(目標:.NET 4.0)中,我具有以下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”-一切都很好,瀏覽器組合框中顯示的值是“ Closed”,因為HTML中的各個<option>標記均已selected="selected"屬性。

然后,選擇“打開”並使用頁面上的“保存”按鈕執行回發。 當我在按鈕的代碼中檢索cmbRequestStateSelectedValue ,即使我選擇了“ 1”,它仍然是“ 2”。

現在,我不再經常編寫ASP.NET應用程序,但是我確實對HTML和PHP編程有所了解,從WinForms和WPF背景中,我希望SelectedValue包含當前選定的值...而且,我不想每次用戶從列表中選擇一個值時都執行回發。

我在這里想念什么? 我如何確保在打開頁面時選擇當前請求狀態,並且如果用戶進行了更改,仍然可以得到新的選擇?

根據頁面生命周期 ,您在Page_Load事件中分配的selectedvalue會覆蓋您在按鈕的OnClick事件中設置的值。 在為控件分配值時,應嘗試匹配頁面生命周期。

在Page_Load中,檢查它是否是回發請求。 如果是這樣,請勿初始化您的組合框。

if (!IsPostback) {
    cmbRequestState.SelectedValue = "2";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM