我们有一个生成服务器端的列表,然后使用<asp:RadioButtonList...
来显示它。
然而,我们如何在其中一个项目之后添加一些HTML?
这个想法是,如果生成其中一个,就会生成一些“子”单选按钮。
由于
ASP.NET:
private void PopulateFollowUpRadioButtons(Order order)
{
//Based on the options selected while creating the order template populate the radio button list.
if (order.OrderTemplate.fur01Visible)
FolloupRadioButtonList.Items.Add(new ListItem(order.OrderTemplate.fur01Label, "1"));
if (order.OrderTemplate.fur02Visible)
FolloupRadioButtonList.Items.Add(new ListItem(order.OrderTemplate.fur02Label, "2"));
if (order.OrderTemplate.fur03Visible)
FolloupRadioButtonList.Items.Add(new ListItem(order.OrderTemplate.fur03Label, "3"));
//If follow up option is already selected then select the option in the Follow Up Radio button control
if (order.FollowUpRoleId != null)
FolloupRadioButtonList.SelectedValue = order.FollowUpRoleId.Value.ToString();
}
<asp:RadioButtonList ID="FolloupRadioButtonList" CssClass="black" ForeColor="Black" runat="server"></asp:RadioButtonList>
答案 0 :(得分:5)
创建您自己的自定义radiobuttonlistcontrol:
Namespace Controls
Public Class MyRadioButtonList
Inherits RadioButtonList
Protected Overrides Sub RenderItem(itemType As System.Web.UI.WebControls.ListItemType, repeatIndex As Integer, repeatInfo As System.Web.UI.WebControls.RepeatInfo, writer As System.Web.UI.HtmlTextWriter)
writer.Write("<div>Extra content</div>")
MyBase.RenderItem(itemType, repeatIndex, repeatInfo, writer)
End Sub
End Class
End Namespace
并使用它。
首先将控件注册到页面或用户控件:
<%@ Register Assembly="(projectnamespace)" Namespace="(projectnamespace).Controls" TagPrefix="cc1" %>
然后使用控件:
<cc1:MyRadioButtonList ID="rdolist" runat="server" />
这是服务器端的基本radiobuttonlistcontrol,所以就像现在一样使用它。
答案 1 :(得分:1)
从技术上讲,您可以直接将您的HTML分配到ListItem
文字,例如这段代码
ListItem li = new ListItem("aaaaa", "aaaaa");
FolloupRadioButtonList.Items.Add(li);
li = new ListItem("bbbbb", "bbbbbbb");
FolloupRadioButtonList.Items.Add(li);
li.Text += @"<table style='padding-left:50px'>
<tr>
<td><input id='ChildList_0' type='radio' name='ChildList' value='zzzzzzz' /><label for='ChildList_0'>zzzzzzz</label></td>
</tr>
<tr>
<td><input id='ChildList_1' type='radio' name='ChildList' value='xxxxxxx' /><label for='ChildList_1'>xxxxxx</label></td>
</tr>
</table>";
将生成此列表和子列表:
但它不是真正的服务器端控制。如果您只需要客户端访问此列表 - 此方法可能适合您。否则,正如我在评论中提到的那样 - 考虑一个用户控件,您可以在其中使用ASP.NET表和RadioButtons构建自己的层次结构。