题
这里是我与占位符具有问题:
我有一个中继器和中继器内,我有一个项模板。现在,这个模板的格式与情侣对表,但对于这个问题,我已经把他们赶走,使事情变得更容易阅读:
<asp:Repeater ID="Repeater1" OnItemDataBound="R1_ItemDataBound" runat="server">
<ItemTemplate>
<asp:PlaceHolder ID="phAnswers" runat="server"></asp:PlaceHolder>
</ItemTemplate>
</asp:Repeater>
然后,在事件OnItemDataBound,创建新的占位符,将其绑定到现有的上(phAnswers),然而该占位符不会更新与所创建的单选按钮/ textboxs:
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占位任何想法? 干杯
解决方案
OnItemDataBound可以是太晚添加控件。尝试在OnItemCreated,看看有没有什么帮助。这是一个快速测试 - 只是改变你的中继事件声明是这样的:
OnItemCreated="R1_ItemDataBound"
如果这个想法没有帮助,您可以轻松地切换回来。
编辑 - 我只是发现了一些。要填充一个单选按钮列表,你应该使用listItems中,像这样的:
ListItem item - new ListItem("your text", "your value");
rdList.Items.Add(item);
这可能是为什么你的单选按钮列表没有出现,但孤独的单选按钮的工作。
其他提示
尝试使用Panel
代替PlaceHolder
的
不隶属于 StackOverflow