Disaplying different panels from options in a dropdown list
-
If you're trying to make a static form that doesn't change then what you're doing is easy as pie: Create your form with all of the drop downs in their own seperate "Panel" controls. (Use a Table for the proper line ups of drop downs). Then simply change the Visible property of all of the drop downs to false (except for the original one). Now make sure the "AutoPostBack" is set to true on the first dropdownlist. Then in the "OnSelectionChanged" (or something like that) event, simple check the value of the new dropdownlist selected item and make the corresponding panel control visible according to the selection. Now if you're using BOUND data, this is all a different story that I'm not going to type up unless this is the case :laugh:
Thanks for the quick reply. The options in the drop downs are manually put in, not taken from a database due to them maybe changing quite regularly. However there may be 3 options selected which will cause a other funtion to run, but i think i know how to get round that one.....:| I have the panels ready etc, the first drop down needs to be a required option which i dont have a problem with, but its where i need to add the other code im having the problem with?:confused::sigh: Thanks Adam:)
-
Thanks for the quick reply. The options in the drop downs are manually put in, not taken from a database due to them maybe changing quite regularly. However there may be 3 options selected which will cause a other funtion to run, but i think i know how to get round that one.....:| I have the panels ready etc, the first drop down needs to be a required option which i dont have a problem with, but its where i need to add the other code im having the problem with?:confused::sigh: Thanks Adam:)
By "the other code" I assume you mean the code to make the other panels visible? If so: In the GUI, select the main dropdownlist. In the "events" section of the properties list doulbe click the empty space to the right of the event: "SelectedIndexChanged" You code will go in here. If you'll paste the code you currently have, I can show you what I mean. Or hit me up on MSN @ xraheemx@hotmail.com
-
By "the other code" I assume you mean the code to make the other panels visible? If so: In the GUI, select the main dropdownlist. In the "events" section of the properties list doulbe click the empty space to the right of the event: "SelectedIndexChanged" You code will go in here. If you'll paste the code you currently have, I can show you what I mean. Or hit me up on MSN @ xraheemx@hotmail.com
Unfotunatley we cant use msn at work:doh: So ill have to put it here. What ive got is the first part so that if it is anything but the initial value it will do the panel viewing:
private void Speciality_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (Speciality.SelectedItem.Value!="Select a speciality")
{
}
}So as an example of the options: Select a speciality Option 1 Option 2 Option 3 Option 4 Option 5 Thanks again for your help. Adam
-
Unfotunatley we cant use msn at work:doh: So ill have to put it here. What ive got is the first part so that if it is anything but the initial value it will do the panel viewing:
private void Speciality_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (Speciality.SelectedItem.Value!="Select a speciality")
{
}
}So as an example of the options: Select a speciality Option 1 Option 2 Option 3 Option 4 Option 5 Thanks again for your help. Adam
OK, so lets say that the other dropdowns are named option1, option2, option3 etc. The following code will work for you:
private void Speciality_SelectedIndexChanged(object sender, System.EventArgs e) { select(Speciality.SelectedItem.Value.ToLower()) { case "option 1": option1.Visible = true; break; case "option 2": option2.Visible = true; break; case "option 3": option3.Visible = true; break; case "option 4": option4.Visible = true; break; case "option 5": option5.Visible = true; break; default: //In case you want to do something "else" break; } }
-
OK, so lets say that the other dropdowns are named option1, option2, option3 etc. The following code will work for you:
private void Speciality_SelectedIndexChanged(object sender, System.EventArgs e) { select(Speciality.SelectedItem.Value.ToLower()) { case "option 1": option1.Visible = true; break; case "option 2": option2.Visible = true; break; case "option 3": option3.Visible = true; break; case "option 4": option4.Visible = true; break; case "option 5": option5.Visible = true; break; default: //In case you want to do something "else" break; } }
-
OK, so lets say that the other dropdowns are named option1, option2, option3 etc. The following code will work for you:
private void Speciality_SelectedIndexChanged(object sender, System.EventArgs e) { select(Speciality.SelectedItem.Value.ToLower()) { case "option 1": option1.Visible = true; break; case "option 2": option2.Visible = true; break; case "option 3": option3.Visible = true; break; case "option 4": option4.Visible = true; break; case "option 5": option5.Visible = true; break; default: //In case you want to do something "else" break; } }
-
Its not allowing me to build the project with code like this? Im getting all sorts of build errors for missing
;
and for thecase
text? Thanks Adam -
The code that I wrote is not the actual code you should use, just an example of how to do it. Paste all of your code here and I'll fix your syntax for you.
-
Although syntactically my code is correct, are you sure you are using a c# code behind and not a VB.NET code behind? Also, did you paste exactly what I wrote?
Yes, im positive it is a c# code behind page. I pasted exactly what you wrote in, but just changed the case values and visible panel names to that of what I am using. I have underlined where I am getting build errors
private void Speciality_SelectedIndexChanged(object sender, System.EventArgs e) { select(Speciality.SelectedItem.Value.ToLower()) { case "Breast Surgery": SpecialityBreastSurgery.Visible = true; break; case "Cardiology": SpecialityCardiology.Visible = true; break; default: //In case you want to do something "else" break; } }
Many thanks Adam
-
Yes, im positive it is a c# code behind page. I pasted exactly what you wrote in, but just changed the case values and visible panel names to that of what I am using. I have underlined where I am getting build errors
private void Speciality_SelectedIndexChanged(object sender, System.EventArgs e) { select(Speciality.SelectedItem.Value.ToLower()) { case "Breast Surgery": SpecialityBreastSurgery.Visible = true; break; case "Cardiology": SpecialityCardiology.Visible = true; break; default: //In case you want to do something "else" break; } }
Many thanks Adam
omg I'm so sorry... my mind was in VB.NET when I wrote this. (VB uses the keywork SELECT instead of SWITCH that is used in C#"
private void Speciality_SelectedIndexChanged(object sender, System.EventArgs e) { switch(Speciality.SelectedItem.Value.ToLower()) { case "breast surgery": SpecialityBreastSurgery.Visible = true; break; case "cardiology": SpecialityCardiology.Visible = true; break; default: //In case you want to do something "else" break; } }
Also remember that your strings for your CASE statements MUST be all lowercase in this instance because I used a .ToLower() in the switch. (I have a habit of doing this to remove casing errors). If you want to use exact case, just simply remove the .ToLower() from the switch.