连接DropDownList和Repeater

时间:2012-09-07 21:54:38

标签: c# .net drop-down-menu repeater

如果这个问题看起来很基本,我很抱歉,但我很茫然。我是编程新手,但有足够的知识让自己迷失方向。基本上,我有一个下拉列表和一个转发器列表。如何在更改类别下拉列表时更改列表。这是在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);
    }
}

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

2 个答案:

答案 0 :(得分:1)

你有几个选择:

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

这样做比较容易,但需要回发,因此在客户端不是那么光滑。

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

答案 1 :(得分: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 />