يمكنك ذلك باستخدام الحدث ItemDataBound الخاص بالمكرر الأول: protected void rep_test_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
(e.Item.FindControl("rep_hello") as Repeater).DataSource = YourOtherDataSource;
}
}فمن خلال e.Item.FindControl("rep_hello") as Repeater) يمكنك الوصول إلى المكرر الثاني وإعطاءه مصدر بيانات DataSource مناسب. مثال: ليكن لدينا مكررين outerRepeater و innerRepeater: <asp:Repeater ID="outerRepeater" runat="server" OnItemDataBound="outerFunction">
<ItemTemplate>
<asp:Repeater ID="innerRepeater" runat="server" OnItemDataBound="innerFunction">
<ItemTemplate><asp:Label ID="myLabel" runat="server" /></ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>نحدد OnItemDataBound لكل منهما outerFunction و innerFunction ثم تكتب الشيفرة البرمجية التالية: void outerFunction(object sender, RepeaterItemEventArgs e)
{
Repeater innerRepeater = (Repeater)e.Item.FindControl("innerRepeater");
innerRepeater.DataSource = ... // Some data source
innerRepeater.DataBind();
}
void innerFunction(object sender, RepeaterItemEventArgs e)
{
Label myLabel = (Label)e.Item.FindControl("myLabel");
}كيف أصل إلى مكرر Repeater موجود بداخل مكرر آخر باستخدام FindControl في Asp.Net؟ كيف أصل إلى مكرر موجود بداخل مكرر آخر في Asp.Net