true Surnamet
true Surnamet

Reputation: 33

How to selectively enable a Dropdown List

I have a form containing two DropDowns lists:

  1. Marital Status
  2. No. of Children

Now I would like to enable the No. of Children DropDown upon selection of following items in the Marital Status DropDown:

  1. Widow
  2. Divorced
  3. Awaiting Divorce

How can I do it?

Upvotes: 1

Views: 3558

Answers (4)

abramlimpin
abramlimpin

Reputation: 5077

.aspx

<asp:DropDownList ID="ddlMaritalStatus" runat="server" AutoPostBack="true" 
        onselectedindexchanged="ddlMaritalStatus_SelectedIndexChanged">
    <asp:ListItem Text="" />
    <asp:ListItem Text="Widow" />
    <asp:ListItem Text="Divorced" />
    <asp:ListItem Text="Awaiting Divorce" />
</asp:DropDownList>
<asp:DropDownList ID="ddlNoOfChildren" runat="server" Enabled="false">
    <asp:ListItem Text="1" />
    <asp:ListItem Text="2" />
    <asp:ListItem Text="3" />
    <!-- and so on -->
</asp:DropDownList>

aspx.cs

protected void ddlMaritalStatus_SelectedIndexChanged(object sender, EventArgs e)
{
    if (ddlMaritalStatus.SelectedItem.Text == "Widow") // if widow is selected
        ddlNoOfChildren.Enabled = true;
    else
        ddlNoOfChildren.Enabled = false;
}

Upvotes: 0

skhurams
skhurams

Reputation: 2145

you can also use cascading dropdown from ajaxcontroltoolkit

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx

Upvotes: 0

Horizon
Horizon

Reputation: 291

DropDown lists have ListItem collection in them. Each ListItem has a Text and a Value. Try setting the text as "Divorced" and value as "D" or better to an integer like "1", something similar to ID. You will get these Text/Value from a Database table if you are retrieving it from the Database.

Make the No. of Children DropDown Enabled = false by default and then Enable = true as explained in the code snippet above by ebad86.

Upvotes: 0

Ebad Masood
Ebad Masood

Reputation: 2379

In the MaritalStaus DropDownList Selected Index changed event, If the selected values match your options then enable the NoOfChild DropDownList.

   protected void MaritalStaus_SelectedIndexChanged(object sender, EventArgs e)    
    {
          //Match the selected value here : for Example:
          if (MaritalStaus.SelectedValue.Equals("Divorced") || /*Other Comparisions */)
          {
             NoOfChild.Enabled = true;  
          }
    }

Upvotes: 3

Related Questions