表topic中的字段
tid 题目id (主键)
tname 题目名称
ta 答案A
tb 答案B
tc 答案C
td 答案D
表reply中的字段
rid 答案id
tid 题目id (外键)
tContent 题目答案
主界面用Datalist绑定表topic中的信息,题目答案用radiobutton现实如下
1.你的经济来源主要来自哪里?(题目只能选择一项)
radiobutton A 自己勤工俭学
radiobutton B 做家教
radiobutton c 父母
radiobutton D 其他
2.题目二
radiobutton A ......
radiobutton B ....
radiobutton c ....
radiobutton D ......
3.题目三
radiobutton A ......
radiobutton B ....
radiobutton c ....
radiobutton D ......
4.题目四
radiobutton A ......
radiobutton B ....
radiobutton c ....
radiobutton D ...... 提交按钮 当用户提交时插入用户的选择tid和答案到表reply中.....
tid 题目id (主键)
tname 题目名称
ta 答案A
tb 答案B
tc 答案C
td 答案D
表reply中的字段
rid 答案id
tid 题目id (外键)
tContent 题目答案
主界面用Datalist绑定表topic中的信息,题目答案用radiobutton现实如下
1.你的经济来源主要来自哪里?(题目只能选择一项)
radiobutton A 自己勤工俭学
radiobutton B 做家教
radiobutton c 父母
radiobutton D 其他
2.题目二
radiobutton A ......
radiobutton B ....
radiobutton c ....
radiobutton D ......
3.题目三
radiobutton A ......
radiobutton B ....
radiobutton c ....
radiobutton D ......
4.题目四
radiobutton A ......
radiobutton B ....
radiobutton c ....
radiobutton D ...... 提交按钮 当用户提交时插入用户的选择tid和答案到表reply中.....
解决方案 »
- iTextSharp设置字体
- c# 类似于股票的曲线图
- 问个关于DOM的问题。
- 公司网页打不开 急求 急急急!!!
- .bak文件
- js+html+webservice如何来存储服务端对象的状态?
- 那位高手能帮忙看一下数据库恢复的代码错在哪里?怎么杀不死进程?谢谢?高分请教...
- Win2k+IIS+dotNet 1.1为何不能建“http://localhost/a.b”这类型的虚拟目录?
- asp.net(C#)中怎样使用InputBox对话框
- 关于Application对象如何存取数组变量的问题(C#)
- |zyciis| Visual studio 操作问题,查找和替换功能要怎么用啊 为什么在region里面的就查找不到呢 谢谢 气死了
- 跪求高人指点:如果通过.cs从数据库中读出来的图片名称来设置网页的背景图片?
html code:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<!-- 题目显示 -->
<asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_ItemDataBound">
<ItemTemplate>
题目:<br />
<asp:Label ID="t1" runat="server" Text='<%# Eval("题目") %>'></asp:Label>
<asp:HiddenField ID="HiddenField1" Value='<%# Eval("题目ID") %>' runat="server" />
<br />答案:
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:DataList>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="提交" />
</div>
<div>
你选的答案:<br />
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
</body>
</html>后台代码:using System;
using System.Data;
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 Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//绑定题目,自己从数据库里读取,这里手动添加
DataTable dt = new DataTable();
dt.Columns.Add("题目ID", typeof(string));
dt.Columns.Add("题目", typeof(string));
DataRow dr = dt.NewRow();
dr["题目"] = "测试题目";
dr["题目ID"] = "1";
dt.Rows.Add(dr);
DataList1.DataSource = dt;
DataList1.DataBind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{ DataTable dt = new DataTable();
dt.Columns.Add("题目");
dt.Columns.Add("答案"); //点击提交,得到所有题和相应答案
for (int i = 0; i < DataList1.Items.Count; i++)
{
HiddenField tmId = (HiddenField)DataList1.Items[i].FindControl("HiddenField1");//题目的ID
DropDownList dd = (DropDownList)DataList1.Items[i].FindControl("DropDownList1");
try
{
DataRow dr = dt.NewRow();
dr["题目"] = tmId.Value;
dr["答案"] = dd.SelectedValue;
dt.Rows.Add(dr);
}
catch
{
}
} //保存dt..............
//显示选择的答案
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{//绑定相应题的答案选项,这里用的是dropdownlist绑定的。自己可以改成其它的,基本上差不多 if (e.Item.ItemType == ListItemType.Item)
{
DropDownList dd = (DropDownList)e.Item.FindControl("DropDownList1");
try
{
HiddenField tmId = (HiddenField)e.Item.FindControl("HiddenField1");//题目的ID //通过题目ID得到相应的答案列表,并绑定 //这里手动添加测试数据
DataTable dt= new DataTable();
dt.Columns.Add("ID", typeof(string));
dt.Columns.Add("DA", typeof(string)); DataRow dr1 = dt.NewRow();
dr1["ID"] = "1";
dr1["DA"] = "A........";
dt.Rows.Add(dr1); DataRow dr2 = dt.NewRow();
dr2["ID"] = "2";
dr2["DA"] = "B........";
dt.Rows.Add(dr2);
dd.DataSource =dt;
dd.DataTextField = "DA";
dd.DataValueField = "ID";
dd.DataBind();
}
catch
{
}
}
}
}
这句改成
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
遍历每一行,取得每一行选择的值。
foreach(datarow r in datalist.Rows)
{
Laber lblID = r.controls[0] as Label;//或者FindControls
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>无标题页</title>
<script type="text/javascript">
var ids = '';
function AddId(id)
{
ids = ids + ',' + id ;
}
function SetHidden()
{
document.getElementById('ids').value = ids;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Repeater ID="rpt" runat="server">
<ItemTemplate>
<ul>
<li><%# ((System.Data.DataRowView)Container.DataItem)["题目名称"]%></li>
<li>A.<input name="r<%# DataBinder.Eval(Container.DataItem,"题目id")%>" type="radio" value="A" /><%# DataBinder.Eval(Container.DataItem, "答案A")%></li>
<li>B.<input name="r<%# DataBinder.Eval(Container.DataItem,"题目id")%>" type="radio" value="B" /><%# DataBinder.Eval(Container.DataItem, "答案B")%></li>
<li>C.<input name="r<%# DataBinder.Eval(Container.DataItem,"题目id")%>" type="radio" value="C" /><%# DataBinder.Eval(Container.DataItem, "答案C")%></li>
<li>D.<input name="r<%# DataBinder.Eval(Container.DataItem,"题目id")%>" type="radio" value="D" /><%# DataBinder.Eval(Container.DataItem, "答案D")%></li>
</ul>
<script type="text/javascript">
AddId('<%# DataBinder.Eval(Container.DataItem,"题目id")%>');
</script>
</ItemTemplate>
</asp:Repeater>
<input id="ids" name="ids" type="hidden" value="" />
<script type="text/javascript">
SetHidden();
</script>
<%=str %>
<p><asp:Button ID="btnSubmit" runat="server" Text="提交" onclick="btnSubmit_Click" /></p>
</form>
</body>
</html> public string str = null;
protected void Page_Load(object sender, EventArgs e)
{
//ORDER BY id ASC的DataSource
rpt.DataSource = DataSource;
rpt.DataBind();
} protected void btnSubmit_Click(object sender, EventArgs e)
{
Is();
str = str == null ? "全对" : str;
}
//结果赋值
private void Is()
{
string[] ids = Request.Form["ids"].Remove(0, 1).Split(',');
string SQL = "SELECT 答案 FROM reply WHERE 1 = 1 ";
for (int i = 0; i < ids.Length; i++)
{
SQL = SQL + " OR id = " + ids[i];
}
SQL = SQL + " ORDER BY id ASC";
SqlConnection.Open();
SqlDataAdapter DataAdapter = new SqlDataAdapter(SqlCommand(SQL));
DataTable dataTable = new DataTable();
DataAdapter.Fill(dataTable);
SqlConnection.Close();
DataAdapter.Dispose();
for (int i = 0; i < ids.Length; i++)
{
if (dataTable.Rows[i][0].ToString() != Request.Form["r" + ids[i]])
str = str + "题目id " + ids[i] + " 回答错误! 正确答案是: " + dataTable.Rows[i][0].ToString() + "<br/>";
}
dataTable.Dispose();
}