0

如果这个问题看起来很基本,我很抱歉,但我很茫然。我是编程新手,但有足够的知识让自己迷失方向。基本上,我有一个下拉列表和一个中继器列表。如何在更改类别下拉列表时更改列表。这是在 C# 中。

这是下拉菜单的代码:

protected void PopulateCategories()
{
    category myCategory = new category();
    category[] myCategoryList = myCategory.Listing("title ASC");

    ddlCategories.Items.Add("-- Select a category --");
    ddlCategories.Items.Add("View all categories");

    foreach (category category in myCategoryList)
    {
        ListItem item = new ListItem(category.title, category.category_id);
        ddlCategories.Items.Add(item);
    }
}

如果您需要更多信息,请询问。我是新手,我会很感激我能得到的任何帮助。提前致谢!

4

2 回答 2

1

你有几个选择:

在下拉列表控件上,您可以添加一个 OnSelectedIndexChanged 处理程序,该处理程序可以通过将新列表数据绑定到转发器来更新转发器。

这更容易做到,但需要回发,因此在客户端并不那么灵活。

另一种方法是在 javascript 中通过将事件处理程序附加到下拉列表来处理此问题,然后更新列表。这对用户来说将是一个更好的体验,但需要更多的努力来将所有类别的所有数据放在页面上,或者在下拉列表更改时请求它们。

于 2012-09-07T22:01:11.887 回答
1

您需要SelectedIndexChanged为下拉列表添加一个事件

public void ddlCategories_SelectedIndexChanged(object sender, EventArgs e)
{
    //Load Repeater code goes here
}

在标记中定义下拉列表时:

<asp:DropDownList id="ddlCategories" runat="server" 
    OnSelectedIndexChanged="ddlCategories_SelectedIndexChanged" 
    AutoPostBack="true />
于 2012-09-07T22:02:25.583 回答