单选按钮列表不正确绑定

时间:2015-12-11 10:01:16

标签: c# asp.net c#-3.0

我在转发器下面有单选按钮列表。 在Repeater项目数据绑定我的绑定单选按钮列表,但它绑定datareader中的每个字符。 如果我将控制权改为单选按钮,它可以正常工作。

<cms:CMSRepeater ID="rpt_Questions" runat="server" OnItemDataBound="rpt_Questions_ItemDataBound">              

              <ItemTemplate>
                  <div><span class="presenter"><%# Container.DataItem%></span></div>
                      <div>
                       <%--   <Strong><%# Container.DataItem%></Strong>--%>
                              <ul class="clearfix">
                                    <cms:QueryRepeater ID="rpt_Answers" runat="server" OnItemDataBound="rpt_Answers_ItemDataBound">
                                        <ItemTemplate>                                               
                                            <asp:RadioButtonList ID="rbtAnswers" runat="server" />
                                        </ItemTemplate>
                                    </cms:QueryRepeater>
                              </ul>
                    </div>               
             </ItemTemplate>
        </cms:CMSRepeater>

protected void rpt_Answers_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item | e.Item.ItemType == ListItemType.AlternatingItem)
    {
        RadioButtonList rblAnswers = (RadioButtonList)e.Item.FindControl("rbtAnswers");


        System.Data.DataRowView drAnswer;
        drAnswer = (DataRowView)e.Item.DataItem;
        rblAnswers.DataSource = drAnswer["Answer"].ToString();
        rblAnswers.DataBind();
    }
}

假设我期待3个带有值a1,a2,a3的单选按钮 它正在创建6个单选按钮 a ,1,a,2,a3

这是因为我有转发器然后重新启动然后复选框列表?

2 个答案:

答案 0 :(得分:0)

protected void rpt_Answers_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item | e.Item.ItemType == ListItemType.AlternatingItem)
    {
        RadioButtonList rblAnswers = (RadioButtonList)e.Item.FindControl("rbtAnswers");


        System.Data.DataRowView drAnswer;
        drAnswer = (DataRowView)e.Item.DataItem;
        rblAnswers.DataSource = drAnswer["Answer"];
        rblAnswers.DataBind();
    }
}

答案 1 :(得分:0)

Sudhir的回答可能有助于你的案子。您可以先尝试检查项目的类型,如果它是您要查找的项目,则添加一个值。

但是根据您提供的结果,我怀疑您实际上是向读者发送了6个值。你看,如果它创建6个按钮“1,a,2,a,3,a”,则表示它获得6个值。

如果是这种情况,您应该创建一个具有“1”值的列表,并将其发送到具有适当显示区域的转发器。