【问题标题】:Dynamically built RadioButtonList displays text but not radio buttons动态构建的 RadioButtonList 显示文本但不显示单选按钮
【发布时间】:2015-02-10 15:55:14
【问题描述】:

我正在动态创建一个包含许多行的表。每行都需要有一个 RadioButtonList,用户可以在其中选择“Under Review”、“Accept”或“Reject”。但是只显示文本:

来自 ASP 页面的代码使用旧式 ASP 来显示变量:

                    <tbody>
                    <%=mstrSocialMediaList%>
                    </tbody>

这是构建 mstrSocialMediaList 的 VB 代码:

            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 页面,它呈现就好了。如果我把它贴在桌子上,它也呈现得很好。

谁能帮忙?
非常感谢, 史蒂夫

【问题讨论】:

  • 您正试图向浏览器发送一个字符串并将其变成一个控件?我认为您不会找到最好的方法。

标签: asp.net vb.net radio-button radiobuttonlist


【解决方案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 放置在特定的表格单元格中,请将页面替换为表格单元格 ID。

希望这有帮助!

【讨论】:

    猜你喜欢
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 2015-07-22
    相关资源
    最近更新 更多