最后在做一个工程,需要在一页中显示多个选择题,学生做好这些选择题后,提交答案。
我采用的方法是Repeater中放置RadioButtonList的方法,代码如下:
aspx:
<%@ Page Language="C#" MasterPageFile="~/Xxx/Master.master" AutoEventWireup="true" CodeFile="Xxx_Jczx_Test.aspx.cs" Inherits="Xxx_Xxx_Jczx_Test" Title="基础知识测试" Debug="true"%>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div id="Article">
<div id="Article_Title">基础知识测试 出题方式:随机 出题数量:10题</div>
<ul>
<asp:Repeater ID="Repeater_Article" runat="server" OnItemDataBound="Get_Qustion_Opion">
<ItemTemplate>
<div id="Article_Content">
<li>(<%# i=i+1%>)、<%# Eval("Xxx_Jczs_Title")%></li>
<asp:Label ID="Label_Opion_1" runat="server" Text='<%# Eval("Xxx_Jczs_Option_1")%>' Visible="false"></asp:Label>
<asp:Label ID="Label_Opion_2" runat="server" Text='<%# Eval("Xxx_Jczs_Option_2")%>' Visible="false"></asp:Label>
<asp:Label ID="Label_Opion_3" runat="server" Text='<%# Eval("Xxx_Jczs_Option_3")%>' Visible="false"></asp:Label>
<asp:Label ID="Label_Opion_4" runat="server" Text='<%# Eval("Xxx_Jczs_Option_4")%>' Visible="false"></asp:Label>
<li><asp:RadioButtonList ID="RadioButtonList_Opion" runat="server" RepeatColumns="2"></asp:RadioButtonList></li>
<li> </li>
</div>
</ItemTemplate>
</asp:Repeater>
<li>
<asp:Button ID="Button_Up" runat="server" Text="交卷" OnClick="Button_Up_Click" /></li>
</ul>
</div>
</asp:Content>
cs:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Xxx_Xxx_Jczx_Test : System.Web.UI.Page
{
public int i = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Get_Qustion_List();
}
}
//读出当前所取得的题目
protected void Get_Qustion_List()
{
DataSet ds = SqlHelper.ExecuteDateSet(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, "select top 3 * from [Xxx_Jczs] order by newid()", null);
Repeater_Article.DataSource = ds;
Repeater_Article.DataBind();
}
protected void Get_Qustion_Opion(object sender, RepeaterItemEventArgs e)//显示二级分类
{
RadioButtonList RBLO = (RadioButtonList)e.Item.FindControl("RadioButtonList_Opion");
Label Opion_1 = (Label)e.Item.FindControl("Label_Opion_1");
Label Opion_2 = (Label)e.Item.FindControl("Label_Opion_2");
Label Opion_3 = (Label)e.Item.FindControl("Label_Opion_3");
Label Opion_4 = (Label)e.Item.FindControl("Label_Opion_4");
ListItem SelectA = new ListItem();
ListItem SelectB = new ListItem();
ListItem SelectC = new ListItem();
ListItem SelectD = new ListItem();
SelectA.Text = "A:" + Opion_1.Text;
SelectA.Value = "A";
SelectB.Text = "B:" + Opion_2.Text;
SelectB.Value = "B";
SelectC.Text = "C:" + Opion_3.Text;
SelectC.Value = "C";
SelectD.Text = "D:" + Opion_4.Text;
SelectD.Value = "D";
RBLO.Items.Add(SelectA);
RBLO.Items.Add(SelectB);
RBLO.Items.Add(SelectC);
RBLO.Items.Add(SelectD);
}
protected void Button_Up_Click(object sender, EventArgs e)
{
for (i = 0; i <= Repeater_Article.Items.Count-1; i++)
{
RadioButtonList RBLO = (RadioButtonList)Repeater_Article.Items[i].FindControl("RadioButtonList_Opion");
if (RBLO.SelectedValue != "")
{
Response.Write(RBLO.SelectedValue);
}
else
{
Response.Write("0");
}
}
}
}