c# - 在另一个中继器内动态绑定(bind)一个中继器?

标签 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。所以我必须动态绑定(bind)(对于每个第一个转发器迭代)一个子类别列表。

我可以吗?怎么办?

最佳答案

如果你有一个像这样的嵌套转发器:

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

您可以使用它来绑定(bind)它:

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();
}

关于c# - 在另一个中继器内动态绑定(bind)一个中继器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16170514/

相关文章:

c# - 如何确定哪个 DataRow 绑定(bind)到 DataGridViewRow

c# - 使用首选键统一移动玩家

c# - 将 PictureBox 与 LoadAsync 的 url 字符串绑定(bind)

asp.net 中继器。使用或不使用

javascript - Nativescript 使用中继器多键值

C# Rx DistinctUntilChanged() 用于任何结果,包括列表

c# - 使用运算符 "="线程安全地复制整个 Queue<T> (C#)

android - java.lang.NoClassDefFoundError : android. databinding.DataBinderMapperImpl 运行 Espresso 测试时

c# - 将属性绑定(bind)到方法

javascript - 如何使用 Jquery 从中继器内的文本框中选择文本?