enable/disable a drop down list based on selection of another drop down list

I am using .net 3.5 with C#. I have three drop down lists in a panel. I want to disable the second and the third drop down until a selection is made on the first. I tried the following:
disable second and third drop down lists on Page_Load. Then enable both of them in the OnSelectedIndexChanged event for the first drop down, but it does not enable them, probably because it is a client side event.

How can I accomplish this?

Thanks.
patd1Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
patd1Connect With a Mentor Author Commented:
setting ScriptMode="Release" in the script manager helped me get rid of that error.
0
 
static-voidCommented:
Is this winforms or webforms?
0
 
patd1Author Commented:
static-void:
Is this winforms or webforms?

This is webforms.
0
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

 
patd1Author Commented:
if I split them into two panels where panel 1 has first drop down list and panel2 ahs the the other 2 drop down lists, ho do I disable panel 2 until a selection has been made on panel 1?
0
 
static-voidCommented:
Ok make sure your disabling code on page load is inside a if(!IsPostback){ } statement
0
 
patd1Author Commented:
Here's what I am doing and the process works, but it refreshes the whole page when I change the selection in my first drop down list (ddl), to enable the other two ddl s.
How can I make it refresh "panel3 only" when  selectedIndex gets changed on the first ddl.
I tried using AJAX update panel, but it starts giving me error when I add this line of code:
<%@ Register Assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="ajaxtoolkit" %> and <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

Error:Microsoft JScript runtime error: Sys.ArgumentTypeException: Object of type 'Object' cannot be converted to type 'Array'.
Parameter name: array
<asp:Panel ID="panel2" runat="server" GroupingText="CLIENT" EnableViewState="true" >
                    <table >
                        <tr>
                         <td class="cls">CLIENT</td><td><asp:DropDownList ID="adv_client" runat="server" OnSelectedIndexChanged="adv_client_SelectedIndexChanged" 
                             OnInit="adv_client_Init" AutoPostBack="true"></asp:DropDownList></td>
                        </tr>
                        </asp:Panel>
                    </table> 
                    <asp:Panel ID="panel3" runat="server" GroupingText="Facilities" EnableViewState="true" >
                    <table> 
                        <tr>
                            <td class="cls">Facility1</td><td><asp:DropDownList ID="adv_ord_ddl" runat="server" 
                                onselectedindexchanged="adv_ord_ddl_SelectedIndexChanged" 
                                 oninit="adv_ord_ddl_Init" ></asp:DropDownList>
                            </td>
                        </tr>
                        <tr>
                            <td class="cls">Department</td><td><asp:DropDownList ID="adv_treat_ddl" runat="server" OnSelectedIndexChanged="adv_treat_ddl_SelectedIndexChanged"
                             OnInit="adv_treat_ddl_Init"></asp:DropDownList></td>
                        </tr>
                        </asp:Panel>
                    </table> 

 protected void Page_Load(object sender, EventArgs e)
    {.....

if (!IsPostBack)
        {
            this.panel3.Enabled = false;
...
}
}
protected void adv_client_SelectedIndexChanged(object sender, EventArgs e)
    {
        Session["adv_client"] = adv_client.SelectedItem.Value;
        if (adv_client.SelectedIndex > 0)
        {
            this.panel3.Enabled = true;
        }
    }

Open in new window

0
 
patd1Author Commented:
it works
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.