将一个中继器动态地绑定到另一个中继器中
本文关键字:中继器 绑定 另一个 动态 一个 | 更新日期: 2023-09-27 18:10:24
我有这样的代码:
<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>
对于每个repeaterCategories
, 和repeaterSubCategories
必须是repeaterCategories.SubCategories
。因此,我必须动态地绑定(对于每个第一个重复器迭代)子类别列表。
我可以吗?如何?
如果你有一个嵌套的重复器,像这样:
<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();
}