Динамически создаваемый 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 внутри определенной ячейки таблицы.

Надеюсь, это помогло!

Другие вопросы по тегам