سؤال

هذه هي المشكلة التي أواجهها مع عنصر نائب:

لدي مكرر وفي هذا المكرر، لدي قالب عنصر. الآن يتم تنسيق هذا القالب بضع طاولات، ولكن لهذا السؤال الذي أزالته لهم لجعل الأمور أسهل في قراءة:

<asp:Repeater ID="Repeater1" OnItemDataBound="R1_ItemDataBound" runat="server">

   <ItemTemplate>
      <asp:PlaceHolder ID="phAnswers" runat="server"></asp:PlaceHolder>               
   </ItemTemplate>
</asp:Repeater>

ثم، في الحدث ONITEMDATAMOUSD، أقوم بإنشاء عنصر نائب جديد، وربطه بالمحدث (phanswers)، ولكن لا يتم تحديث العنصر النائب مع Radiobuttons / TextBoxs التي يتم إنشاؤها:

    Dim rdList As New RadioButtonList
    Dim newRadio As New RadioButton

 If (e.Item.ItemType = ListItemType.Item) Or _
        (e.Item.ItemType = ListItemType.AlternatingItem) Then

        Dim tempPH As PlaceHolder

        tempPH = e.Item.FindControl("phAnswers")

        For x As Integer = 0 To (t_MC.Count - 1)

                newRadio = New RadioButton

                newRadio.ID = "Answer" + x.ToString
                newRadio.Text = t_MC(x).Value
                rdList.Controls.Add(newRadio)

            Next

   tempPH.Controls.Add(rdList)

أي أفكار لماذا لا يتم تحديث phanswers مع عنصر النائب tempph الجديد؟ هتافات

هل كانت مفيدة؟

المحلول

قد يكون OnItemDATABOUND فوات الأوان لإضافة عناصر تحكم. جربه في OnItemCreated ومعرفة ما إذا كان ذلك يساعد. إنه اختبار سريع - ما عليك سوى تغيير إعلان أحداث مكرر مثل هذا:

OnItemCreated="R1_ItemDataBound"

إذا كانت هذه الفكرة لا تساعد، فيمكنك بسهولة إيقاف تشغيله.

تحرير - لقد لاحظت شيئا. لتعبئة Radiobuttonlist، يجب عليك استخدام Listitems، مثل هذا:

ListItem item - new ListItem("your text", "your value");
rdList.Items.Add(item);

ربما هذا هو السبب في سبب ظهور Radiobuttonlist الخاص بك، ولكن أزرار راديو وحيدة تعمل.

نصائح أخرى

حاول استخدام أ Panel بدل من PlaceHolder

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top