Asp.net 如何在每个具有序列号的单选按钮列表项前显示额外标签?

Asp.net 如何在每个具有序列号的单选按钮列表项前显示额外标签?,asp.net,radiobuttonlist,Asp.net,Radiobuttonlist,我有一个单选按钮列表,我用以下代码与数据源绑定,它显示为我想要的结果: dv.RowFilter = "VoteId = " + grdVote.DataKeys[e.Row.RowIndex].Value; rdbList.DataSource = dv; rdbList.DataTextField = "VoteOption"; rdbList.DataValueField = "VoteOptionId";

我有一个单选按钮列表,我用以下代码与数据源绑定,它显示为我想要的结果:

dv.RowFilter = "VoteId = " + grdVote.DataKeys[e.Row.RowIndex].Value;
            rdbList.DataSource = dv;
            rdbList.DataTextField = "VoteOption";
            rdbList.DataValueField = "VoteOptionId";
            rdbList.DataBind();
现在我的问题是如何显示每个单选按钮列表项的字母序列号。在下图中,苹果前应该有“A”,香蕉前应该有“B”,以此类推


不幸的是,单选按钮列表将无法使用,除非您准备将数据源更改为以字母为前缀的文本值(尽管这也不会生成正确的布局)

一般来说,我不喜欢单选按钮列表生成的标记(html),建议使用转发器来获得具有正确语义html的布局。比如说,

<asp:Repeater runat="server" ID="optionList">
   <HeaderTemplate><ol class="optionList" type="A"></HeaderTemplate>
   <ItemTemplate> 
     <li>
       <input type="radio" name="VoteList" value='<%# Eval("VoteOptionId") %>' />
       <%# Eval("VoteOption") %>
     </li>
   </ItemTemplate>
   <FooterTemplate></ol></FooterTemplate>
</asp:Repeater>
protected void Page_PreRender(object sender, EventArgs e)
{
    for (int i=0; i < rdbList.Items.Count; i++)
    {
        rdbList.Items[i].Text = Convert.ToChar(65 + i).ToString() + " " + rdbList.Items[i].Text;
    }
}

您的想法很好理解,但我想使用单选按钮,我可以在单选按钮列表中添加一个额外的控件,因为它使用表tr td呈现,每个td列表项呈现为输入类型单选+每个项一个标签。所以我的想法是,我可以在td on单选按钮列表数据绑定事件中添加一个额外的标签。设置它的文本我已经试过了,而不是页面预呈现,我在rdblist_prerender上试过了,错误是它会在文本(标签)之前给出字母,但我希望这些字母在单选按钮圈(输入类型单选)保护的void rdblist_数据绑定(对象发送方,事件参数e){RadioButtonList rdblist=(RadioButtonList)sender;foreach(rdbList.Items中的ListItem li){Label l1=new Label();l1.Text=“a”;}@rahularyansharma,
RadioButtonList
控件模型不提供任何向其添加其他控件的方法。为了更好地控制标记(例如单选按钮前的字母表),您需要使用其他控件,例如
Repeater
——不仅它提供了灵活性,而且您还可以生成有效的语义html(在本例中是一个有序列表)@vinayC这背后的原因是什么?这是否与单选按钮列表未实现的任何界面有关?@Flimzy您用错误的标题编辑了它。我不想对它们进行排序。请仔细阅读。由于您的编辑,我的问题标题及其描述不匹配