簡體   English   中英

從ASP.NET DropDownList獲取選定的值

[英]Getting Selected Value from an ASP.NET DropDownList

我無法獲得以編程方式生成的項目列表的選定值:

Protected Sub ddlMMMYY2_PreRender(ByVal sender As Object, ByVal e 
                                As System.EventArgs) Handles ddlMMMYY2.PreRender
    If Not Page.IsPostBack Then
        'Value= 08.2009 Text=Aug 09
        Dim d As Date
        d = Now

        Dim myDay As Date
        Dim myDayStr As String
        Dim myDayValue As String

        Dim i As Integer
        For i = 0 To 15
            myDay = d.AddMonths(i)
            myDayValue = myDay.ToString("MM.yyyy")
            myDayStr = myDay.ToString("MMMM yyyy")

            Dim item As ListItem = New ListItem
            item.Text = myDayStr
            item.Value = myDayValue
            Me.ddlMMMYY2.Items.Add(item)
        Next

        If Not Request.QueryString("Abreise") Is Nothing Then
            Dim Anreise As String = Request.QueryString("Abreise")
            Dim myArray As Array
            myArray = Split(Anreise, ".")
            Me.ddlMMMYY2.Items.FindByValue(myArray(1).ToString & "." 
                                      & myArray(2).ToString).Selected = True
        End If

    End If
End Sub

如果我嘗試從靜態DropDownList獲取值,則<asp:listitem>可以工作。

我能做什么?

您需要通過覆蓋CreateChildChild控件或覆蓋OnInit方法,將項目添加到下拉框。 使用PreRender將項目添加到列表意味着對於視圖狀態而言,將您輸入的列表項目與瀏覽器返回的值連接起來為時已晚。

同樣,如果您使用Init方法或CreateChildControls,則您在下拉列表中輸入的值將由視圖狀態保存,因此將孔內容包裝在if(!IsPostback)中

希望有道理:-)

確保為DropDownList啟用ViewState。 您可能需要重新綁定DropDownList才能獲取所選值。

正如邁克爾·愛德華茲(Michael Edwards)所說-ViewState在引發PreRender事件之前已經保存。

暫無
暫無

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

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