0

也许之前有人问过这个问题,如果是,那么对不起:)

我在 aspx 中创建一个简单的表单,它有 2 个下拉列表和一个按钮

在第一个 ddl 我有选项可以说:

  • 全部
  • 诺基亚
  • 三星

第二个包含子类别。

  • 全部
  • 3310
  • N95
  • 银河王牌
  • 银河SII

如果第一个用户在第二个中选择全部,他将只看到全部。
如果他选择诺基亚,他将看到 All、3310 和 N95;
如果他选择三星,他将看到 All、Galaxy Ace 和 Galaxy SII。

我发现了几篇文章如何使用服务器执行此操作,以从服务器填充第二个下拉列表。

在我的情况下,我不需要服务器,因为我将有大约 10 个项目和 3 个类别。

怎么做?简单的 aspx 或 javascript。

我会很感激。谢谢!

4

1 回答 1

1

试试下面的代码。

<asp:DropDownList runat="server" AutoPostBack="true" ID="ddlCategories" OnSelectedIndexChanged="ddlCategories_SelectedIndexChanged">
            <asp:ListItem Text="All" Value="All" />
            <asp:ListItem Text="Nokia" Value="Nokia" />
            <asp:ListItem Text="Samsung" Value="Samsung" />
        </asp:DropDownList>
        <asp:DropDownList runat="server" AppendDataBoundItems="true" ID="ddlSubCategories">
            <asp:ListItem Text="All" Value="All" />
        </asp:DropDownList>

因为您没有使用数据库,所以我们必须对值进行硬编码。

protected void ddlCategories_SelectedIndexChanged(object sender, EventArgs e)
    {
        ddlSubCategories.Items.Clear();   
        if (string.Compare(ddlCategories.SelectedValue, "Nokia", true) == 0)
        {
            ddlSubCategories.Items.Add(new ListItem("3310", "3310"));
            ddlSubCategories.Items.Add(new ListItem("N95", "N95"));
        }
        else if (string.Compare(ddlCategories.SelectedValue, "Samsung", true) == 0)
        {
            ddlSubCategories.Items.Add(new ListItem("Galaxy Ace", "Galaxy Ace"));
            ddlSubCategories.Items.Add(new ListItem("Galaxy SII", "Galaxy SII"));
        }
        ddlSubCategories.Items.Insert(0, new ListItem("All", "All"));
    }

Hope it helps. If you want to go for javascript route find below link.

Populate one dropdown based on selection in another

于 2012-04-20T12:40:55.277 回答