C# 在另一个中继器内动态绑定一个中继器?
我有以下代码:C# 在另一个中继器内动态绑定一个中继器?,c#,data-binding,repeater,C#,Data Binding,Repeater,我有以下代码: <asp:Repeater id="repeaterCategories" runat="server"> <ItemTemplate> <div class="categorie-item"> ... <asp:Repeater id="repeaterSubCategories" runat="server"> <It
<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
。因此,我必须动态绑定(对于每个第一次重复迭代)子类别列表
我能做吗?如何操作?如果您有这样的嵌套中继器:
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<ItemTemplate>
<asp:Repeater ID="Repeater2" runat="server"></asp:Repeater>
</ItemTemplate>
</asp:Repeater>
嗯,但是我如何才能为每个
Repeater2
绑定Repeater1.子类别
?编辑了我的答案,包括如何将e
的数据项
强制转换到您的类和子类别。(Repeater)e.Item.FindControl(“Repeater2”);重要vs((中继器)中继器1.FindControl(“中继器2”):)谢谢。这太棒了,但是如果子中继器的数据中需要父中继器的数据表(例如)呢?您是否建议将可在ItemDataBound中使用的DataTable设置为全局?
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();
}