• 0

كيف أصل إلى مكرر Repeater موجود بداخل مكرر آخر باستخدام FindControl في Asp.Net؟

قمت بإنشاء مكرر Repeater يقوم بعرض منشورات مع صورة كل منشور وإمكانية إضافة رد على كل منشور، بالنسبة للردود قمت بإنشاء Repeater ثاني بداخل الـRepeater  الأول ولكن مشكلتي لا أستطيع الوصول إليه من الـCode Behined
كيف يمكنني إيجاد المكرر الثاني باستخدام FindControl ومن ثم التعامل معه؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يمكنك ذلك باستخدام الحدث 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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن