数据库wenti表结构为:id  qus     aus1  aus2 aus3
1   问题1    A     B    C
2   问题2    d     e    f
3   问题3    h     i    j我现在想用Repeater嵌套RadioButtonList来实现:        <asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
                题目:<%# Eval("qus") %>
                选项:
                <asp:RadioButtonList ID="RadioButtonList1" runat="server">
                <!--这里将数据表里的aus1、aus2、aus3以RadioButton形式显示出来(单选),每个问题的答案有所不同,所以要根据问题读出选项-->
                </asp:RadioButtonList>
            </ItemTemplate>
        </asp:Repeater>目前已经可以显示出题目列表,但不知道怎么把RadioButtonList里的项目和aus1、aus2、aus3相关联,各位大侠教教我,小的感激涕零,谢谢,如果有更好的方法也请指出。

解决方案 »

  1.   

    有两种方法
    通用的方式是在写Repeater_ItemDataBound中去绑定子控件
      

  2.   

    以下代码供参考    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
           
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                string au_id = ((DataRowView)e.Item.DataItem).Row["au_id"].ToString();
                RadioButtonList RadioButtonList1 = (Repeater)e.Item.FindControl("RadioButtonList1");
                if (RadioButtonList1 != null)
                {
                    SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=;database=pubs");
                    SqlCommand cmd = new SqlCommand("select  au_id, au_lname from authors where au_id = @au_id", cn);
                    cmd.Parameters.Add("@au_id", SqlDbType.VarChar, 11).Value = au_id;
                    cn.Open();
                    RadioButtonList1.DataSource = cmd.ExecuteReader();
    RadioButtonList1.DataValueField = "au_id";
    RadioButtonList1.DataTextField = "au_lname";
                    RadioButtonList1.DataBind();
                    cn.Close();
                }
            }
        }
      

  3.   

    不要用 RadioButtonList,直接使用 RadioButton  <asp:Repeater ID="Repeater1" runat="server">
                <ItemTemplate>
                    题目:<%# Eval("qus") %>
                    选项:
                   
                    <asp:RadioButton ID="RadioButton1" runat="server" Text='<%# Eval('aus1') %>' GroupName='<%# Eval('id') %>' />
                    <asp:RadioButton ID="RadioButton2" runat="server" Text='<%# Eval('aus2') %>' GroupName='<%# Eval('id') %>'/>
                    <asp:RadioButton ID="RadioButton3" runat="server" Text='<%# Eval('aus3') %>' GroupName='<%# Eval('id') %>'/>
                </ItemTemplate>
            </asp:Repeater>
    ============
    手写的,没测试