Solved

dropdownlist has a SelectedValue which is invalid because it does not exist in the list of items

Posted on 2006-07-14
5
391 Views
Last Modified: 2008-02-01
I have a dropdownlist ("ddlYear") in a formsview that is populated with years (used for the user's birthdate). I set the selectedvalue to:

Year(DataBinder.Eval(Container.DataItem, "BirthDate"))

I also check that the datetime value I'm grabbing from the database is included in the dropdownlist. However, when I load the page it gives me this error:

'ddlYear' has a SelectedValue which is invalid because it does not exist in the list of items.
Parameter name: value

I bound the item to a text box to see if the year is being grabbed, and it is.

The strange thing is that if I set the selected value to: Right((DataBinder.Eval(Container.DataItem, "BirthDate")), 4)

it works!

Any idea why this is happening. I'd prefer to use the "Year" instead of "Right"

Thanks.
0
Comment
Question by:Skytide
  • 3
  • 2
5 Comments
 

Author Comment

by:Skytide
ID: 17113454
Ok, it gets even weirder. When I have the code below, it works.

</asp:DropDownList>&nbsp;<asp:DropDownList ID="ddlYear" runat="server" SelectedValue='<%# Right((DataBinder.Eval(Container.DataItem, "BirthDate")), 4) %>'>
                <asp:ListItem Value="1979">1979</asp:ListItem>
                <asp:ListItem Value="1980">1980</asp:ListItem>
                <asp:ListItem Value="1981">1981</asp:ListItem>
                <asp:ListItem Value="1982">1982</asp:ListItem>
                <asp:ListItem></asp:ListItem>

BUT when I remove the last blank list item (see below), it gives me the same error.

</asp:DropDownList>&nbsp;<asp:DropDownList ID="ddlYear" runat="server" SelectedValue='<%# Right((DataBinder.Eval(Container.DataItem, "BirthDate")), 4) %>'>
                <asp:ListItem Value="1979">1979</asp:ListItem>
                <asp:ListItem Value="1980">1980</asp:ListItem>
                <asp:ListItem Value="1981">1981</asp:ListItem>
                <asp:ListItem Value="1982">1982</asp:ListItem>

This really doesn't make any sense to me.

0
 
LVL 7

Expert Comment

by:pradeepsudharsan
ID: 17113491
hi,

Convert the year,month,day to integer
u can try like this

CInt(Year(DataBinder.Eval(Container.DataItem, "BirthDate")))
or use
CType(Year(DataBinder.Eval(Container.DataItem, "BirthDate")),integer)

regards
Pradeep

0
 
LVL 7

Accepted Solution

by:
pradeepsudharsan earned 500 total points
ID: 17113524
or
Convert the year,month,day to string
u can try like this

CString(Year(DataBinder.Eval(Container.DataItem, "BirthDate")))
or use
CType(Year(DataBinder.Eval(Container.DataItem, "BirthDate")),String)


or pass  the value to any java script variable and convert it to string
0
 

Author Comment

by:Skytide
ID: 17115222
I still get the same error. Maybe I can set the SelectedValue in the code behind, in the DataBound Event. I'm thinking I can extract the date from a hidden field that is set to (bind("BirthDate")). Is there a way to extract the date from the DataBound event w/o using a hidden field?
0
 

Author Comment

by:Skytide
ID: 17139662
I just ended up using a hidden field, finding the control in the code behind and setting the selected value of my dropdownlist to the hidden field.
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I have developed many web applications with asp & asp.net and to add and use a dropdownlist was always a very simple task, but with the new asp.net, setting the value is a bit tricky and its not similar to the old traditional method. So in this a…
Today is the age of broadband.  More and more people are going this route determined to experience the web and it’s multitude of services as quickly and painlessly as possible. Coupled with the move to broadband, people are experiencing the web via …
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, just open a new email message. In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now