启用&禁用下拉列表

时间:2014-01-23 07:59:55

标签: c# asp.net

我有一个带有两个下拉列表的网络表单。

  1. 第一个下拉列表包含2个值&
  2. 第二个下拉列表包含3个值。
  3. 我的目标是,当我选择1st value的{​​{1}}时,1st drop down list不应该是2nd dropdownlist,而是当我选择visible时第一个2nd value,第二个dropdownlistdropdownlist

3 个答案:

答案 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;
            }

    }

可见 * 启用/停用 *使用注释行并注释其他行

希望这有帮助

快乐编码