数据库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 问题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相关联,各位大侠教教我,小的感激涕零,谢谢,如果有更好的方法也请指出。
通用的方式是在写Repeater_ItemDataBound中去绑定子控件
{
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();
}
}
}
<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>
============
手写的,没测试