Solved

Set Selected Value on Multiple Dropdowns - which depend on each other

Posted on 2006-07-18
9
222 Views
Last Modified: 2012-06-22
I am pulling data out of a database into a form for en 'edit' administrative section.

I select my data etc..
I populate my textboxes just fine.

There is one textbox in particular 'zip_code' which is what another 'county' dropdown(sqldatasource) rely on for its values

Then there is a 'city' dropdown whos datasource depends on the value of 'county' for its values.

For the edit page workflow, id like the default values on page load (not postback) to populate with the values that have been written into the database.

so - i have tried looping throuh the controls and tetting the textbox.text values or dropdown.selectedvalue = datareader value

I get as far as county, but then city _will not_ auto select.
My best guess on this is that the sqldatasource webcontrols do thier stuff _after_ the Sub Page_Load?  which is causing my problems?
Im probably wrong though..
Anyone have any idea how i can resolve this with out digging too deep into codebehinds?
Id rather not have to build dropdown lists by hand every time the page loads.
(example, user edits the zip_code and now a whole new set of issues arrises)

an ideal solution is one where the datasource webcontrols cause the dropdowns to 'just work' and enable viewstate keeps selected values across postbacks as long as the zip code doesnt change, in which case they select new values anyways (and it keeps them)

Thanks!

0
Comment
Question by:EchoBinary
  • 4
  • 2
  • 2
9 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17133516
There is always the Atlas ToolKit and the Cascading DropDown Control:

The "Atlas" Control Toolkit helps you bring your websites to life!
http://atlas.asp.net/default.aspx?tabid=47&subtabid=477

Bob
0
 

Author Comment

by:EchoBinary
ID: 17133645
Awesome site! however not something i can use right now.
I will look into that for the future.    any further advice?
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17133705
Do you want to do all this without post-backs?

Bob
0
 

Author Comment

by:EchoBinary
ID: 17133719
i dont mind the postbacks at the moment  - but id like it to work as described
v2.0 will b w/o postbacks  

deadlines..  you know  ;)
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 25

Expert Comment

by:nauman_ahmed
ID: 17133760
No need to loop through the controls. Make sure that you use a If(!Page.IsPostBack) before you call your binding routine in page_load event:

private Page_Load(object src, EventArgs e)
{
  if (!Page.IsPostBack)
  {
      BindControlsForEditing();
   }
}

I am assuming you have a separate editable section for your records. If it is so, your workflow should look like this.

1. Connect to database

2. Get Records

3. Populate the value for the parent field. If it is a listbox or drop down that has several values already populated, then seet its selected index as follows:

MyListBox.SelectedIndex = MyListBox.Items.IndexOf(MyListBOx.Items.FindByValue("PARENT_FIELD_VALYE"));

Once you have set the selected index, it will stay selected between post-back as long as user do not select a different value.

4. Depending on the value of parent field, populate the value of child field.

5. Populate another parent field.

6. Depending on the value of parent field, populate the value of child field.

and so on. If you have a text-field like zip-code field that is a parent for another field, you can write an evenhandler for TextChanged event and then bind the approprite child control.

HTH, Nauman.
0
 

Author Comment

by:EchoBinary
ID: 17271818
Upon further investigation i am forced to wonder if there is an order of operations issue going on.

The code that tells the dropdown which to select by default is in (obviously) a code behind.
The dropdowns are databound to asp controls on the page itself. is it poss. that the databinding is happening _after_ the codebehind gets run?
0
 
LVL 25

Accepted Solution

by:
nauman_ahmed earned 500 total points
ID: 17271930
Yes. Databinding for dependent text-box is mostly handled when the selected index is changed for parent drop-down. Check the SelectedIndexChanged event for the parent drop-down to see if it has additional code.

--Nauman.
0
 

Author Comment

by:EchoBinary
ID: 17437670
My solution was to realize what the order of operations is/was for the page. as such ill give pts to nauman for answering that part
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
asp.net mvc5 3 50
ASP.net pdf file opening in debug mode but not on web 13 32
Need a complete list of ASP.NET page load events 3 25
Auto refresh part of an MVC5 View 7 53
I recently went through the process of creating a Calendar Control of events with the basis of using a database to keep track of the dates that are selectable, one requirement was to have the selected date pop-up in a simple lightbox.  At first this…
ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
A company’s greatest vulnerability is their email. CEO fraud, ransomware and spear phishing attacks are the no1 threat to a company’s security. Cybercrime is responsible for the largest loss of money to companies today with losses projected to r…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

948 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

21 Experts available now in Live!

Get 1:1 Help Now