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:
ASP.NET PAGE: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
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>


Reply With Quote

Bookmarks