[英]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.