我有一个单选按钮列表,我使用以下代码与数据源绑定,它显示为我想要的结果:
dv.RowFilter = "VoteId = " + grdVote.DataKeys[e.Row.RowIndex].Value;
rdbList.DataSource = dv;
rdbList.DataTextField = "VoteOption";
rdbList.DataValueField = "VoteOptionId";
rdbList.DataBind();
现在我的问题是如何显示每个单选按钮列表项的字母序列号。在下面的图像中,苹果之前应该是'A',香蕉之前应该是'B'等等.....
答案 0 :(得分:1)
不幸的是,使用单选按钮列表是不可能的,除非您准备好更改数据源以使文本值前缀为字母(尽管这也不会生成正确的布局)。
一般情况下,我不喜欢单选按钮列表生成的标记(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>
要访问所选的单选按钮,您可以使用Request.Form["VoteList"]
编辑:如果你必须使用单选按钮,其中一个想法可能是在列表被数据绑定后修改文本。例如,
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;
}
}