AJAX :: Cascading Dropdownlist Has A SelectedValue Which Is Invalid?
May 20, 2010
I think this needs to be a sticky since this is not solved anywhere that I have been looking... I have been googling this for a while now and came across the answer by shear luck and a simple typo when I was writing the code...
Problem: I have 2 dropdown lists...
ddllist1 and ddlist2... Both are code-behind populated via a sql DB.
they are cascading lists via the ajax control.
I am trying to dynamically populate them with values from a DB for edit reasons.
When I try to get them populated I kept getting the error...
"dropdownlist has a SelectedValue which is invalid because it does not exist in the list of items"
Solution:
1) get the values from the DB or from where ever...
2) create a sql select to get the values from the ddl db
3) set the ID of the first DDL control to cddcontrol1.SelectedValue = id (this is a number)
4) set the value of the DDL to the string value ddlist2.SelectedValue = value (this is a string)
I have a dropdownlist in DetailsView to which items are added programmatically during DataBound event. It is working fine in InsertItemTemplate, but in EditItemTemplate i am getting this error "'branchDDL' has a SelectedValue which is invalid because it does not exist in the list of items. Parameter name: value".
I have a dropdown list that has a bind on it and I get this error. Why am I getting this error and what can I do to fix it. here is the code for the dropdown I currently have:
I have a page with some bound DropDownLists (DDLs) for a Call Logging system. The Calls are categorised on three levels for example:
Call: 3069, Category 1: Incident, Category 2: Microsoft Application, Category 3: Word would be used to organise calls for problems with Microsoft Word. On testing the system, I noticed that there was no handling for opening a call if the category had been deleted - say for reorganisation/systems no longer supported whatever. So I set about trying to make the program behave in the following manner:
Check category ID exists in DDL before bindingIt doesn't: set the displayed text of the DDL to Category Name + "(Deleted)"Disable the control to prevent user changingMove on to next control Seemed simple enough, however no matter which way I try and do it I always get the messase ddl_Cat1 has a SelectedValue which is invalid because it does not exist in the list of items. What's really puzzling me is that the exception doesn't seem to be being thrown in the code behind. I've gone through line by line from Page_Init and it never throws and exception. Just when the page loads this appears.
Does anyone know of a reason as to why this wouldn't work? (I've already tried setting the selected value to an existing item, adding a new list item with the value and setting DataSource property to Nothing - in all different combinations.)
I got this error when select a row from a grid view to update
'ddl_ctegOf_Product_update' has a SelectedValue which is invalid because it does not exist in the list of items.Parameter name: value Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.ArgumentOutOfRangeException: 'ddl_ctegOf_Product_update' has a SelectedValue which is invalid because it does not exist in the list of items.Parameter name: value
Source Error: Line 265: txt_prodID_update.Text = gridTo_updateFrom.SelectedRow.Cells[1].Text; Line 266: txt_prod_name_update.Text = gridTo_updateFrom.SelectedRow.Cells[2].Text; Line 267: ddl_ctegOf_Product_update.SelectedValue = gridTo_updateFrom.SelectedRow.Cells[3].Text; Line 268: txt_cateIn_hardCopy_update.Text = gridTo_updateFrom.SelectedRow.Cells[4].Text.Replace(" ", ""); Line 269: txt_prodID_update.ReadOnly = true;
The code of update:
private void PopulateDropDownList() { string constr = ConfigurationManager.ConnectionStrings[1].ConnectionString; using (SqlConnection con = new SqlConnection(constr)) { using (SqlCommand cmd = new SqlCommand("SELECT CategoryProd_ID,Cate_Pro_Name FROM CategoryOfProduct", con)) { using (SqlDataAdapter da = new SqlDataAdapter(cmd))
I am passing the values obtained from ddlSubGroup and ddlPageNumbers to a datasource as parameter (Actually to a pageddata ) , on which i create a DataList.
The page is working fine actually but the problem is like the following,</p>
Considering that all dropdown are selected as following :
When i change ddlSubGroup to another one , ddlPageNumbers is populated depending on the number of items divided by 20 ( The datalist is paged by 20 items per time)
then i change the ddlSubGroup(RUBBER PARTS in this example for example to BodyParts , so the dropdown values becomes like :
[code]....
At this point Body PARTS also has page numbers like 1,2,3,4 etc but, it still remains as 2 , however i need the page number to reset back to 1.
Is there any way to do this , and where should i place the code exactly ( which event ) ?
I am gettng the above error when I am using the Cascading Dropdown list in a DNN application. Everything works 100% until I try to post the form to the db then the error is thrown.I have attached the relevent code
i use cascading dropdown lists (in a user registration form) and when the user hits the submit button i get the error: "Invalid postback or callback argument" I've seen on the net that this is a problem dating back many years but still haven't found a solution to this. I've read about changing EnableEventValidation to false, but this poses a security risk.
I have a WebForms page that has two DropDownList controls on it that both contain a range of temperatures from 60-80 degrees, one for heating the other for cooling. They are declared in the .aspx as:
When I try to set the selected value for each DropDownList using the values in an object containing data loaded from the database using:heating.SelectedValue = myHome.avgHeatingTemp.ToString(); cooling.SelectedValue = myHome.avgCoolingTemp.ToString();
The SelectedValue for both lists is set first to the value in myHome.avgHeatingTemp, then to the value in myHome.avgCoolingTemp. Heres what the values are for each variable after each step of the process of setting the SelectedValues:
Initial State heating.SelectedValue: 60 cooling.SelectedValue: 60 [code]....
I have a Cascading drop down list that is working fine to load the correct lists however I would like to have the last one initiate a query and display a datagrid on the same page containing the results of the query. Without Ajax involved this seems rather easy by using autopostback on the drop downs. If I could do it through Ajax that would be great but I can settle with having the page to reload to display the data. Right now I'm not sure how to do either. I enabled autopostback on the last drop down and wrote a method for it but I get an error at runtime saying:
I am referring to following line from this link [URL] ....
data 'continentId ' 'ddlContinents.ClientID'.val ''
In your code. i tried using this code and facing a tiny problem. In above mentioned code 'ddlContinents.ClientID'.val stores integer value in contentId for obvious reasons but the requirement of my code is different. i want to pass text which is selected instead of id no.for example if mumbai is listed as second option and i select mumbai it should store mumbai in contentId instead of 2 i.e. integer value.
I am trying to get two cascading dropdownlist to work but cannot get either to populate. How do I de-bug this? I'm not getting any errors, just blank dropdowns.
I've been trying to fill in webservice from SQL Server. But in-case this was the problem. I found an example on this site to fill with test values, but this still does not work. Since I cannot even get first to populate, to simplify I'm just giving code for first dropdown and its function(s)
I am trying to select some data with dropdown lists which are related.
I select one of selection in dropdownlist1. After that, when my page reloads, dropdownlist2 is filled with table name which i am trying to get data from. (TBLYETKILI)
I am dealing with a problem that i have to make decision based on the number of items in a cascading dropdownlist. unfortunately this ajax toolkit control does not expose a Items collection.how do i count the number of items in this control ?
I'm wanting to maintain the dropdownlist values that were selected when i use postbackurl with a button. They cascading dropdowns are on a masterpage in an accordion pane. I select the 3 vales in the ddl and then presss a button which redirects to the new content page.
I've been able to get the values using previousPage.master.fincontrol... but am then setting the selectedValue in the page_init of the conent page, but they aren't set when the page loads... does anyone know where to put the code to set the values?
Now i'm working on the cascading dropdownlist for to bind a country and city, city is based on country dropdownlist. its working well , if city comes more than 8000 records in city dropdownlist , takes more to bind city.
I really have no idea on this problem on the cascading dropdownlist. I have a cascading dropdownlist that bind with calling the web services.
I wan to do a autopostback to get the value of the Album GUId so that i can query out all the photo list of that album. it is working well if my page without the AlbumGUId query string.
my problem is:
when i redirect from other page and passing the Album GUId querystring to this page, it will display all my photo for this album guid. but when i change the album to Select which should be able to display all the Photos, it cannot display out. It only will work is when i choose another album and then go back to Select then it only can work..
I'd like to set the selected value of cascading dropdownlist by reading from a Textbox.Text value when the dropdownlist has been populated, is this possible?
at last project i need to deploy cascading dropdownlist without using web serive or cascadingDropDownList Extender
i try to do this using updatepanel :D this work , but at many times that apear my computer and my internet Explorer as busy and hang and i can not do any thing untill populate the second dropdownlist :(
is there any way to avoid that and to view a wait message until populate the second dropdownlist , i mean is there a sample code for doing that
I have two dropdownlist in cascading working, in my file file.aspx, all work good.the selected values from cascading dropdownlist bind my repeater. when select item inside repeater redirect me to second.aspx. when comeback to first.aspx i lose all selected values in cascading dropddowlist and also values in repeater.
i can populate cascading dropdownlist by using webservice now. but may i know how do i trigger function while selectedindex changed? (without using auto postback...)