Динамически создаваемый RadioButtonList отображает текст, но не переключатели
Я динамически создаю таблицу, которая имеет много строк. В каждой строке должен быть список RadioButtonList, в котором пользователи могут выбрать "На рассмотрении", "Принять" или "Отклонить". Однако отображается только текст:
Код со страницы ASP использует старый стиль ASP для отображения переменной:
<tbody>
<%=mstrSocialMediaList%>
</tbody>
Вот код VB, который создает mstrSocialMediaList:
mstrSocialMediaList &= "<tr>"
... a bunch of table building code excerpted ...
mstrSocialMediaList &= "<td><asp:RadioButtonList ID=""rbStatus" & .SocialMediaID & _
""" runat=""server"" RepeatDirection=""Horizontal""> "
' mstrSocialMediaList &= " OnSelectedIndexChanged = ""rbSaveSocialMedia"">"
mstrSocialMediaList &= "<asp:ListItem Value =""0"""
If .StatusID = 0 Then
mstrSocialMediaList &= " Selected =""True"""
End If
mstrSocialMediaList &= ">Under Review<br /></asp:ListItem>"
mstrSocialMediaList &= "<asp:ListItem Value =""1"""
If .StatusID = 1 Then
mstrSocialMediaList &= " Selected =""True"""
End If
mstrSocialMediaList &= ">Accepted<br /></asp:ListItem>"
mstrSocialMediaList &= "<asp:ListItem Value =""2"""
If .StatusID = 2 Then
mstrSocialMediaList &= " Selected =""True"""
End If
mstrSocialMediaList &= ">Rejected<br /></asp:ListItem>"
mstrSocialMediaList &= "</asp:RadioButtonList>"
mstrSocialMediaList &= "</td></tr>"
Когда я проверяю mstrSocialMediaList в отладчике, это выглядит так (я отформатировал)
<tr>
<td>
<asp:RadioButtonList ID="rbStatus163" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Value ="0">Under Review<br /></asp:ListItem>
<asp:ListItem Value ="1" Selected ="True">Accepted<br /></asp:ListItem>
<asp:ListItem Value ="2">Rejected<br /></asp:ListItem>
</asp:RadioButtonList>
</td>
</tr>
Просто, черт возьми, я добавил ASP-код чуть выше этой строки на страницу aspx, и он хорошо выглядит. Это также делает хорошо, если я вставлю это в таблицу.
Кто-нибудь может помочь?
Большое спасибо, Стив
1 ответ
asp:RadioButtonList
это серверный элемент управления, и если вы передадите его как строку, он не будет правильно отображаться на стороне клиента. Вы должны динамически создать элемент управления и добавить его в коллекцию элементов управления страницы (или там, где вы хотите) в коде позади.
Например
Dim rbl as New RadioButtonList
'Create your list items as follows
rbl.Items.Add(New ListItem("Some text", "SomeText"))
Page.Controls.Add(rbl)
замените страницу идентификатором ячейки таблицы, если хотите разместить RadioButtonList
внутри определенной ячейки таблицы.
Надеюсь, это помогло!