Solved

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

Posted on 2006-07-14
5
393 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

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

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

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
Sometimes in DotNetNuke module development you want to swap controls within the same module definition.  In doing this DNN (somewhat annoyingly) swaps the Skin and Container definitions to the default admin selections.  To get around this you need t…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

856 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