Problem getting selected value from DropDownList using ArrayList as DataSource
I'm having a problem getting the selected value from a DropDownList that uses an ArrayList as a DataSource. When I select a year and click on the submit button, I get the following error message:
Object reference not set to an instance of an object.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
I'm not understanding why this isn't working. The years (1900 - 1993) are getting populated into the DropDownList without a problem, but on the btnSubmit_Click job gets submitted, I get that error. And and all help would be appreciated. Hopefully it's something simple that I'm missing.
Here's the code I'm using:
VB.NET CODE-BEHIND:
Code:
'Assign date variables
Dim dtCurrDate As DateTime = DateTime.Now 'Assign current date
Dim intCurrYear As Integer = DateTime.Now.Year 'Assign current year
Dim intVotingYear As Integer = intCurrYear - 18 'Assign voting year
Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then 'loads with page
'Declare an array for the dynamic dropdownlist
Dim colArrayList As New System.Collections.ArrayList()
'Declare loop variables
Dim i As Integer = 1900
Dim intDisplayYear As Integer = i
'Loop through years
For i = 1900 To intVotingYear
colArrayList.Add(i)
colArrayList.TrimToSize()
colArrayList.Sort() 'Sort years
colArrayList.Reverse() 'Reverse sort/descending order
Next
'Bind data
ddlYear.DataSource = colArrayList
ddlYear.DataBind()
'Add a new listitem to the beginning of the dropdownlist
ddlYear.Items.Insert(0, New ListItem("- Year -", "")) 'Text, value
ddlYear.SelectedIndex = ddlYear.Items.IndexOf(ddlYear.Items.FindByText(Session("SelectedYear")))
End If
End Sub
Sub btnSubmit_Click(ByVal Sender As Object, ByVal E As EventArgs)
'Declare form variables
Dim strFormYear As String = ddlYear.SelectedItem.Text '<<<<-----THIS IS WHERE I GET THE ERROR
'NOTE: I've also tried changing the above line to:
'Dim strFormYear As String = ddlYear.SelectedItem.Value
'...but that resulted in the same error.
'Declare session variables
Session("SelectedYear") = dob_year_form
If Page.IsValid Then
Try...
...
End If
End Sub
ASP.NET PAGE:
Code:
<form id="form1" method="post" runat="server">
<asp:DropDownList id="ddlYear" runat="server"></asp:DropDownList>
<asp:Button ID="btnSubmit" Text="Submit" OnClick="btnSubmit_Click" runat="server" />
</form>