Question

Voici le problème que j'ai avec espace réservé:

J'ai un répéteur et dans ce répéteur, j'ai un modèle d'élément. Maintenant, ce modèle est formaté avec quelques tables, mais pour cette question que je les retire pour rendre les choses plus faciles à lire:

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

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

Ensuite, l'événement OnItemDataBound, je crée un nouvel espace réservé, se lient à l'existant sur (phAnswers), mais l'espace réservé est pas mis à jour avec les RadioButtons / textboxs qui sont créés:

    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)

Toutes les idées pourquoi phAnswers est pas mis à jour avec le nouveau espace réservé tempPH? Vive

Était-ce utile?

La solution

OnItemDataBound peut être trop tard pour ajouter des contrôles. Essayez-le dans OnItemCreated et voir si cela aide. Il est un test rapide - il suffit de modifier votre déclaration d'événement répéteur comme ceci:

OnItemCreated="R1_ItemDataBound"

Si cette idée ne suffit pas, vous pouvez facilement basculer en arrière.

Edit - Je viens de remarquer quelque chose. Pour remplir un RadioButtonList, vous devez utiliser ListItems, comme ceci:

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

Ceci est probablement la raison pour laquelle votre RadioButtonList ne semble pas, mais les boutons radio ont travaillé seuls.

Autres conseils

Essayez d'utiliser un Panel au lieu d'un PlaceHolder

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top