我有一个带有两个下拉列表的网络表单。
我的目标是,当我选择1st value
的{{1}}时,1st drop down list
不应该是2nd dropdownlist
,而是当我选择visible
时第一个2nd value
,第二个dropdownlist
应dropdownlist
。
答案 0 :(得分:3)
您需要将第一个下拉列表的AutoPostBack属性设置为true并添加OnSelectedIndexChanged-EventHandler
<asp:DropDown id="FirstList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="FirstList_Changed"></asp:DropDown>
在您的EventHandler中,您可以检查所选索引并采取相应措施。
protected void FirstList_Changed(object sender, EventArgs e) {
if(FirstList.SelectedIndex == 0) {
SecondList.Visible = false;
} else {
SecondList.Visible = true;
}
}
但是你也可以用JavaScript做同样的事情(参见BPX&#39;解决方案)。
答案 1 :(得分:2)
您可以使用JQuery来完成。下面给出了一个示例代码。
$("#DropDownList1").change(function(){
indx = $("#DropDownList1 option:selected").index();
if(indx==1)
{
$("#DropDownList2").hide();
}
else
{
$("#DropDownList2").show();
}
})
不要忘记添加jquery插件。
答案 2 :(得分:2)
如果您想启用和停用,您可以使用此代码
<asp:DropDownList ID="ddl1" runat="server" AppendDataBoundItems="true" AutoPostBack="true" Width="100%">
<asp:ListItem Text="" ></asp:ListItem>
<asp:ListItem Text="Value 1" Value="1"></asp:ListItem>
<asp:ListItem Text="Value 2" Value="2"></asp:ListItem>
</asp:DropDownList>
您需要设置 AutoPostBack =“true”并在 SelectedIndexChanged 中编写此代码
protected void ddl1_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (ddl1.SelectedValue == "1")
{
ddl2.Enabled = false;
//ddl2.Visible = false;
}
else
{
ddl2.Enabled = true;
//ddl2.Visible = true;
}
}
catch (Exception ex)
{
string b= ex.Message;
}
}
可见 * 启用/停用 *使用注释行并注释其他行
希望这有帮助
快乐编码