在另一个转发器内动态绑定转发器?

时间:2013-04-23 13:22:55

标签: c# data-binding repeater

我有这段代码:

<asp:Repeater id="repeaterCategories" runat="server">
    <ItemTemplate>
        <div class="categorie-item">
            ...

            <asp:Repeater id="repeaterSubCategories" runat="server">
                <ItemTemplate>
                    ...
                </ItemTemplate>
            </asp:Repeater>
        </div>                    
    </ItemTemplate>
</asp:Repeater>
对于每个repeaterSubCategories

repeaterCategories.SubCategories必须为repeaterCategories。所以我必须动态绑定(对于每个第一个转发器迭代)一个子类别列表。

我可以这样做吗?怎么样?

2 个答案:

答案 0 :(得分:5)

如果您有这样的嵌套转发器:

<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
    <ItemTemplate>
        <asp:Repeater ID="Repeater2" runat="server"></asp:Repeater>
    </ItemTemplate>
</asp:Repeater>

您可以使用它来绑定它:

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    var data = ((MyClass)e.Item.DataItem).Subcategories;
    var repeater2 = (Repeater)e.Item.FindControl("Repeater2");
    repeater2.DataSource = data;
    repeater2.DataBind();
}

答案 1 :(得分:0)

看一下这个链接:http://support.microsoft.com/default.aspx?scid=kb;en-us;306154 它解决了我的问题。