View Single Post
  #1 (permalink)  
Old December 1st, 2011, 01:43 PM
kwilliams kwilliams is offline
Points: 1,561, Level: 16
Points: 1,561, Level: 16 Points: 1,561, Level: 16 Points: 1,561, Level: 16
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
Join Date: Jul 2005
Location: , , .
Posts: 317
Thanks: 0
Thanked 0 Times in 0 Posts
Question 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:

'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.Sort() 'Sort years
                colArrayList.Reverse() 'Reverse sort/descending order

            'Bind data
            ddlYear.DataSource = colArrayList

            '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
    End If

End Sub


<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" />