我有一个包含两个 DropDowns 列表的表单:
- 婚姻状况
- 孩子数量
现在我想在婚姻状况下拉菜单中选择以下项目后启用孩子人数下拉菜单:
- 寡妇
- 离婚
- 等待离婚
我该怎么做?
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;
}
}
.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;
}
DropDown列表中包含ListItem集合。每个ListItem都有一个Text和一个Value。尝试将文本设置为“Divorced”,将值设置为“D”或更好的整数,如“1”,类似于 ID。如果您从数据库中检索这些文本/值,您将从数据库表中获取这些文本/值。
默认情况下将 No. of Children DropDown Enabled = false
设置为下拉菜单,然后Enable = true
按照 ebad86 上述代码片段的说明。
您还可以使用 ajaxcontroltoolkit 中的级联下拉菜单
http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx