Domanda

qui è il problema che sto avendo con segnaposto:

Ho un ripetitore e all'interno di tale ripetitore, ho un modello di elemento. Ora questo modello è formattato con un paio di tavoli, ma per questa domanda io li hanno rimosso per rendere le cose più facili da leggere:

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

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

Quindi, l'evento OnItemDataBound, creo un nuovo segnaposto, si legano agli esistenti (phAnswers), tuttavia il segnaposto non viene aggiornato con i radiobutton / textboxs che vengono creati:

    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)

Tutte le idee perché phAnswers non viene aggiornato con il nuovo segnaposto tempPH? Acclamazioni

È stato utile?

Soluzione

OnItemDataBound potrebbe essere troppo tardi per aggiungere controlli. Provalo in OnItemCreated e vedere se questo aiuta. Si tratta di un test rapido - basta modificare la dichiarazione di evento ripetitore in questo modo:

OnItemCreated="R1_ItemDataBound"

Se questa idea non risolve il problema, è possibile passare facilmente indietro.

Modifica - Ho appena notato qualcosa. Per popolare un RadioButtonList, si dovrebbe usare ListItems, come questo:

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

Questo è probabilmente il motivo per il vostro RadioButtonList non sembra, ma i pulsanti di opzione solitari lavorato.

Altri suggerimenti

Provare a usare un Panel invece di un PlaceHolder

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top