Atualizando espaço reservado durante a execução
-
19-09-2019 - |
Pergunta
aqui é o problema que estou tendo com o marcador:
Eu tenho um repetidor e dentro desse repetidor, eu tenho um modelo de item. Agora, este modelo é formatado com um par de mesas, mas para esta pergunta eu removi-los a fazer as coisas mais fáceis para ler:
<asp:Repeater ID="Repeater1" OnItemDataBound="R1_ItemDataBound" runat="server">
<ItemTemplate>
<asp:PlaceHolder ID="phAnswers" runat="server"></asp:PlaceHolder>
</ItemTemplate>
</asp:Repeater>
Em seguida, no evento OnItemDataBound, eu criar um novo espaço reservado, vinculá-lo ao existente no (phAnswers), no entanto o espaço reservado não é atualizado com as radiobuttons / textboxs que são criados:
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)
Todas as ideias por phAnswers não é atualizado com o novo espaço reservado tempPH? Felicidades
Solução
OnItemDataBound pode ser tarde demais para adicionar controles. Experimentá-lo em OnItemCreated e ver se isso ajuda. É um teste rápido - apenas mude sua repetidora declaração evento como este:
OnItemCreated="R1_ItemDataBound"
Se esta ideia não ajuda, você pode facilmente mudar-lo de volta.
Edit - Eu notei algo. Para preencher um RadioButtonList, você deve usar ListItems, como este:
ListItem item - new ListItem("your text", "your value");
rdList.Items.Add(item);
Este é provavelmente por isso que o seu RadioButtonList não apareceu, mas botões de rádio solitários trabalhou.
Outras dicas
Tente usar um Panel
em vez de um PlaceHolder