Forms Data Controls :: Implement A Form Of Cascading Dropdownlists And Associated Controls?
Dec 4, 2010
I've got 3 SqlDataSource controls, and 2 dropdownlists and 1 detailsview on a page. The first SqlDataSource is associated with the first dropdownlist, and second SqlDataSource (which is filtered based upon the selection chosen in the first dropdownlist) is associated with the second dropdownlist and the third SqlDataSource (which is filtered both by the selection of the first dropdownlist and the second dropdownlist) is associated with the detailsview. The idea is the user selects something in the first dropdownlist, and it is supposed to update what is returned by the second SqlDataSource control and second dropdownlist, and that in turn is supposed to change what is returned in the third SqlDataSource control and it's associated detailsview. All of the dropdownlists have AutoPostback set to True.
I have a DetailsView control with several fields that is in insert mode. Three of them are the source of my problems and headaches.
I have three DropDownLists in template fields.
The first one is OK, bound to it's designated field in table1 in the database. The next two however have to change their bound tables according to the SelectedValue.
So far, I've managed to get it working, BUT when I insert the data I've entered, these two DropDownLists are not entered into the database.
DropDownList3 - the list that controls the other two DDLs
DropDownList4 and DropDownList5 - the list that need to change their items accordingly
DropDownList3 has six different values, so I have 6 tables for each of the other two DDLs
However I have only tried with one to see if it would work, that's why the Sub seems incomplete.
Here is the relevant part of the code:
And the DropDownList3_SelectedIndexChanged sub:
If I leave SelectedValue='<%# Bind("shelves") %>' and SelectedValue='<%# Bind("type") %>' in the <asp:DropDownList> tag of the two DDLs that change values, I get an error when the first one does the postback.
The error is:
Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control. This error, I spent a whole day looking through forums and knowledge bases, but I could find nothing that solves my problem. Maybe the problem is me, but my boss wants this done, despite it is not my area of expertise to write code.
I have two dropdownlists inside a repeater. And based on the value I pick in the first dropdownlist the second needs to get populated (both need to be populated from the DB via stored proc). I am adding the code I have so far but it's not complete
I have a web app with several groups of cascading dropdownlists. All the cascading dropdownlists work as designed, but now the app is in the live enviroment with multiple users they are getting error 500 messages returned in some of the dropdownlists. Just wondered if there is a set amount of time to populate between selections? As these users are sometimes waiting tens of mins betwen selecting the values.On some of the dropdowns i'm pasing a date to the method using session variable whether this could be the issue? an example of one of the methods is below:
am having three dropdownlists on my webform. On the based on their selection I am retriving records from a databas table. my code for retrieving records as follows.when I didnt select ant dropdownlist ans click the search button then it featch all records. but when i select an option from suppose i select from ddlDivision, even there is many records related to selected Division but it shows sorry no record found.
I have a FormView in InsertItem that contains one DropDownList linked to a Table Datasource to display ItemCodes. In that "lookup" table I also have a Retail and Cost field.When the user selects the item from the drop down, how can I have these to field carry over into my new record that is being inserted. The new record also has a Retail and Cost field that are TextBoxes.Basically I am populating the new fields with the default values from the DropDownList.
I need to filter data in a View using three dropdownlists that are populated independently of one another. The items in the second ddl are not based on the items in the first, etc. Each ddl is populated using its own sql statement. I want to be able to use each of these dropdownlists independently of the other two, but I want the data that is returned to be based on the values already in the other dropdownlists when I make a selection change.
For example: DDL1 is populated with Horsepower values from its own SQL statement.
DDL2 is populated with Gallons per Minute from its own SQL statement, unrelated to what is chosen in DDL1.
DDL3 is populated with Diameter values from its own SQL statement, unrelated to either of the other DDLs.
I want to be able to make a selection from any of the DDLs and filter data based on the selection, and whatever the current value is for the other two DDLs.
I'm coding in C# and I think I may need to create a delegate and an event to listen for when the SelectedIndexChanged event fires on any of the DDLs. This is slightly more complicated than anything I've coded up to this point, I'm a beginner, and I'm not even sure I'm aiming in the right direction for a solution.
I want to filter my gridview using two parameters that come from Dropdownlists. I bind these drops with two linq queries and next I would like to filter my gridview with query that has two parameters that comes from selected values from those drops. Everything is inserted in UpdatePanel. Here is my code:
I have a gridview that is currently showing 20 lines per page. Each line has several fields in it, three of which are dropdownlists. These dropdownlists are populated with a SQLDataSource and then the selected value is bound to one of the gridview datalements.
The problem I'm running into is that the page is very slow to load. I believe this is because of the large dropdownlists (and possibly because there are roughly 60 of them, each of which is executing a SQL query to populate the list of available values). The file size that is being transmitted over the web is just over 1.25MB in size, again from the large amounts of data in the dropdownlists.
Is anyone aware of a technique by which I could only execute the query from the SQLDataSources that populate the dropdownlists' available values once and then reuse the results of that query to populate the relevant dropdowns? Ideally I would do this on the client side so it would also limit the amount of text being transmitted to the client browser.
I'm comfortable populating dropdownlists in a standard webform, but I seem to be having trouble populating them from within a gridview or listview.I know that I'll probably need to use the find control method, I've had a stab at it with the following:
The purpose of this is to allow someone to look at a bunch of records, and in a dropdownlist add an item to a group, but this "group" is in a separate table, so I want to take whatever value that select in the dropdown menu, lookup their user id, and add both bits of information to the other table, so it's technically not even editing, even though i suspect I'll need to use the edititem template?
On one of my pages I display a Gridview. This contains a list of questions generated by a SQLDataSource, with a dropdownlist on each row containing the answers for that question. The answer values can be different depending on the question, so I populate them in the RowDataBound event for the gridview, using question information.
As the list of questions is longer than the page I have placed the gridview within a Div which allows me to use scrollbars to navigate the gridview. I also use some methods to preserve the location of the last question answered - so that on answering a question, the gridview does not reset to show the first part of the gridview.
This works fine for IE7, which is what I have been using for the development, and which part of my customer base uses. However, the other part of my customer base uses IE6, which causes a problem.
When an IE6 user attempts to answer some questions, they run into issues. Should they scroll down the gridview, when they select a value from a dropdownlist (Effectively, when they answer a question), there is a postback and all of the visible (i.e. onscreen) dropdownlists appear to be cleared. However, on mousing over any of the dropdownlists, their value is then shown. On using either the scrollbar, or on using the mousewheel to scroll the gridview, all the dropdownlists are 'refreshed' and their values are shown.
At no point does the application appear to lose the data, it is just not showing it until there is a mouseover or the gridview is refreshed. Another odd aspect of this is that this does not apply to the first 5 rows of the Gridview. Any of these can be altered without there being this display issue. Should the gridview be scrolled enough to show some of the first 5 rows and some subsequent rows, only the subsequent rows will have this display issue.
I have tried various things to correct this - originally I called my retrievescrollposition method on the SelectedIndexChanged event of the dropdownlist, but have since moved it to Page_Load as the Else branch of if (!IsPostBack). I tried rebinding the DropDownlist in the SelectedIndexChanged event, but this only helped with the Question I was answering - the display of any other onscreen questions was still affected.
I have got 2 Drop Down Lists on my Form and 1 GridView. I want GridView to display the data according to selection from the Drop Down Lists.
For Example, One Drop Down List contains Names and other contains Dates. Both the Drop Down Lists can post back. So if i select a name from 1st Drop Down list, the Grid View should show all the results according to that Name. Similarly if i select the Date from the other Drop Down List , the Grid View should show the results according to the dates. But i cant figure out as how to bind Grid View to respond to 2 Drop Down List.
BTW i am binding both the Drop Down Lists and the Grid View to the DataSource Objects, which is getting data from the database.
column 2 is a checkbox <cbxNeverAttended> not visible
column 3 is a textbox <tbxLastDate> not visible
in the 'GridView_RowDataBound'
i determine if a ddlGrade value already exists and if so, make it selected in the dropdownlist
also, if the value of ddlGrade is a "U" I make cbxNeverAttended and tbxLastDate visible
However, if cbxNeverAttended or tbxLastDate are both empty strings (and ddlGrade has the value "U"), I want to disable all instances of ddlGrade in the gridview (essentially forcing the user to enter a value for cbxNeverAttended or tbxLastDate before moving on to enter another ddlGrade).
But I have been unable to figure out a way to accomplish this on the 'Gridview_RowDataBound',
I have two dropdownlists and one datagrid...I want to bring data from dropdownlists to grid.After selecting items in both the dropdownlists , I want to add the two selected items from dropdownlists in a datagrid row in two diffrent columns.And I want to add next selected data from the two dropdownlists to the second row of grid and so on.
I hope somebody can guide me to overcome below challenge.
My form has three dropdownlist controls and one listview. Everything works fine if I don't try to pass multiple querystrings to get different URL on the same page. But challenge comes when I try to pass multiple querystrings to show different URL's for SEO.
Following are the ID's:
1. DropDownList1= Country
2. DropDownList2= State
3. DropDownList3= City
4. Listview1= Resturants (I am not including Code .....yet)
With my code DropDownList1 holds the state and passes the value to URL OK .When I try to select different value in DropDownList2 or DropDownList3 are able to pass the vaule to URL but in the form they stay on the first item and doesn't change and so does Listview1.
I am trying to do this with many issues of data binding doubling the amount and not setting selectedValue on dropdownlist. I have read some posts and they help but I am missing a crucial piece. My problem is that my dropdownlist is doubling the amount of records for the dropdownlist. Instead of "YES;NO;SELECT A VALUE", I am getting "YES;NO;SELECT A VALUE;YES;NO;YES;NO". My database is correct with the UPDATE part but the rebind after update is failing horribly.