Pregunta

aquí es el problema que estoy teniendo con el marcador de posición:

tengo un repetidor y dentro de ese repetidor, tengo una plantilla de elementos. Ahora bien, esta plantilla está formateado con un par de mesas, pero para esta pregunta que les han quitado para hacer las cosas más fáciles de leer:

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

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

A continuación, en el caso OnItemDataBound, creo un nuevo marcador de posición, se unen a los ya existentes en (phAnswers), sin embargo, el marcador de posición no se actualiza con los botones de radio / textboxs que se crean:

    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)

Cualquier idea por qué phAnswers no se actualiza con el nuevo marcador de posición tempPH? Saludos

¿Fue útil?

Solución

OnItemDataBound puede ser demasiado tarde para agregar controles. Probarlo en OnItemCreated y ver si eso ayuda. Es una prueba rápida - acaba de cambiar su declaración evento repetidor de la siguiente manera:

OnItemCreated="R1_ItemDataBound"

Si esta idea no funciona, se puede cambiar fácilmente de nuevo.

Editar - Me he dado cuenta de algo. Para rellenar un RadioButtonList, se debe utilizar ListItems, como esto:

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

Esta es probablemente la razón por su RadioButtonList no apareció, pero los botones de radio solitarios trabajaron.

Otros consejos

Trate de usar un Panel en lugar de un PlaceHolder

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top