Вопрос

вот проблема, с которой я столкнулся с заполнителем:

У меня есть ретранслятор, и внутри этого ретранслятора есть шаблон элемента.Теперь этот шаблон отформатирован с помощью пары таблиц, но для этого вопроса я удалил их, чтобы было легче читать:

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

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

Затем в событии OnItemDataBound я создаю новый заполнитель, привязываю его к существующему (phAnswers), однако заполнитель не обновляется созданными радиокнопками/текстовыми полями:

    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