也许以前曾经问过这个问题,如果是的话,那么抱歉:)
我在aspx中创建了一个简单的表单,它有2个下拉列表和一个按钮
在第一个ddl中我有选项可以说:
第二个包含子类别。
如果在第一个用户中选择All in second,他将只看到All。
如果他选择诺基亚,他会看到All,3310和N95,如果他选择三星,他将获得All,Galaxy Ace和Galaxy SII。
我发现有几篇文章如何使用服务器,从服务器填充第二个下拉列表。
在我的情况下,我不需要服务器,因为我将有大约10个项目和3个类别。
怎么做?简单的aspx或javascript。
我将不胜感激。谢谢!
答案 0 :(得分: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"));
}
希望它有所帮助。如果你想去javascript路线找到以下链接。