这是我与占位符的问题:
我有一个转发器,在转发器内,我有一个项目模板。现在这个模板被格式化了几个表,但是对于这个问题,我已经删除了它们以便于阅读:
<asp:Repeater ID="Repeater1" OnItemDataBound="R1_ItemDataBound" runat="server">
<ItemTemplate>
<asp:PlaceHolder ID="phAnswers" runat="server"></asp:PlaceHolder>
</ItemTemplate>
</asp:Repeater>
然后,在事件OnItemDataBound上,我创建一个新的占位符,将其绑定到现有的on(phAnswers),但占位符不会使用创建的radiobuttons / textbox更新:
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占位符更新? 干杯
答案 0 :(得分:1)
OnItemDataBound可能为时已晚,无法添加控件。在OnItemCreated中尝试一下,看看是否有帮助。这是一个快速测试 - 只需更改您的转发器事件声明:
OnItemCreated="R1_ItemDataBound"
如果这个想法无效,您可以轻松将其切换回来。
编辑 - 我刚注意到了一些事情。要填充RadioButtonList,您应该使用ListItems,如下所示:
ListItem item - new ListItem("your text", "your value");
rdList.Items.Add(item);
这可能就是为什么你的RadioButtonList没有出现,但单独的单选按钮有效。
答案 1 :(得分:0)
尝试使用Panel
代替PlaceHolder