美好的一天!
我这里有一个简单的代码:
<asp:DropDownList ID="ddlNumber" runat="server">
<asp:ListItem></asp:ListItem>
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="ddlText" runat="server">
<asp:ListItem></asp:ListItem>
<asp:ListItem>a</asp:ListItem>
<asp:ListItem>b</asp:ListItem>
<asp:ListItem>c</asp:ListItem>
</asp:DropDownList>
我想要做的是当下拉列表不为空时,另一个下拉列表被禁用。
到目前为止,我尝试过的代码无效:
if (ddlNumber.SelectedValue == "" && ddlText.SelectedValue == "")
{
ddlNumber.Enabled = true;
ddlText.Enabled = true;
}
else if (ddlNumber.SelectedValue != "")
{
ddlText.Enabled = false;
}
else if (ddlText.SelectedValue != "")
{
ddlNumber.Enabled = false;
}
非常感谢任何帮助。谢谢。
答案 0 :(得分:3)
您需要为列表项设置Value属性。
<asp:DropDownList ID="ddlNumber" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlNumber_SelectedIndexChanged">
<asp:ListItem Value=""></asp:ListItem>
<asp:ListItem Value="1">1</asp:ListItem>
<asp:ListItem Value="2">2</asp:ListItem>
<asp:ListItem Value="3">3</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="ddlText" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlText_SelectedIndexChanged">
<asp:ListItem Value=""></asp:ListItem>
<asp:ListItem Value="a">a</asp:ListItem>
<asp:ListItem Value="b">b</asp:ListItem>
<asp:ListItem Value="c">c</asp:ListItem>
</asp:DropDownList>
还处理.cs文件中的SelectedIndexChanged事件
protected void Page_Load(object sender, EventArgs e)
{
if (ddlNumber.SelectedValue == "" && ddlText.SelectedValue == "")
{
ddlNumber.Enabled = true;
ddlText.Enabled = true;
}
}
protected void ddlNumber_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddlNumber.SelectedValue != "")
ddlText.Enabled = false;
else
ddlText.Enabled = true;
}
protected void ddlText_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddlText.SelectedValue != "")
ddlNumber.Enabled = false;
else
ddlNumber.Enabled = true;
}
答案 1 :(得分:1)
如果您希望在进行选择时触发事件,则应附加事件处理程序并将(None, None)
设置为AutoPostBack
:
true
代码隐藏中的事件处理程序:
<asp:DropDownList ID="ddlNumber" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlNumber_SelectedIndexChanged" >
<asp:ListItem></asp:ListItem>
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="ddlText" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlNumber_SelectedIndexChanged" >
<asp:ListItem></asp:ListItem>
<asp:ListItem>a</asp:ListItem>
<asp:ListItem>b</asp:ListItem>
<asp:ListItem>c</asp:ListItem>
</asp:DropDownList>