Jump to content

Problem Getting Selected Value From Dropdownlist Using Arraylist As Datasource


kwilliams
 Share

Recommended Posts

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:

'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:

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

Link to comment
Share on other sites

I thought that posting my solution might help others, so here it goes:After getting some advice from another forum user, I was able to solve the problem by taking a step back. I did that by using a simple example of the ArrayList at W3Schools at http://www.w3schools.com/aspnet/aspnet_arraylist.asp to compare it to my code. The issue ended up being in the page declaration. I had EnableViewState="false", and I changed it to EnableViewState="true". Once I did that, and I placed the initial code within an "If Not Page.IsPostBack Then...", it worked as it should. :good:

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...