我做的是一个在线考试系统,生成选择题的代码如下:
SqlCommand myCommand = new SqlCommand("select top 10 * from 选择题 order by newid()",dbconn);
SqlDataReader myReader = myCommand.ExecuteReader();
while(myReader.Read())
{
Literal LitTxt=new Literal();
Literal LitBl=new Literal();
CheckBoxList ChkMc=new CheckBoxList();
// RadioButtonList ChkMc=new RadioButtonList();
ChkMc.ID="ChkMc"+i.ToString();
LitTxt.Text=i.ToString()+"、 "+Server.HtmlEncode(myReader.GetValue(1).ToString())+"<BR><Blockquote>";
LitBl.Text="</Blockquote><HR>";
ChkMc.Font.Size=11;
for(int j=1;j<=4;j++)
{
ChkMc.Items.Add(Server.HtmlEncode(myReader.GetValue(1+j).ToString()));
ChkMc.Items[j-1].Value=j.ToString();
}
mcStr+=myReader.GetValue(6).ToString(); //mcStr是存储随机生成试题答案的字符串变量
MyPanel.Controls.Add(LitTxt); //MyPanel为Panel容器控件
MyPanel.Controls.Add(ChkMc);
MyPanel.Controls.Add(LitBl);
i++;
}
myReader.Close();
dbconn.Close();现用如下代码来获取考生选择的答案for(int i=1;i<=10;i++) //由于随机生成了10道题,所以循环10次
{
for(int j=0;j<4;j++)
if(Request.Form["ChkMc"+i.ToString()+":"+j.ToString()]!=null)
mcs+="1"; //mcs是存储考生所选答案的字符串变量,已选用"1"表示,未选用"0"表示
else
mcs+="0";
}
上面的代码我试过了,可以得到预想的结果,上面生成的是多选题,用的是CheckBoxList,但如果我要改成实现单选题的效果而把CheckBoxList改为RadioButtonList,请问应该如何获取考生所选择的答案呢?
SqlCommand myCommand = new SqlCommand("select top 10 * from 选择题 order by newid()",dbconn);
SqlDataReader myReader = myCommand.ExecuteReader();
while(myReader.Read())
{
Literal LitTxt=new Literal();
Literal LitBl=new Literal();
CheckBoxList ChkMc=new CheckBoxList();
// RadioButtonList ChkMc=new RadioButtonList();
ChkMc.ID="ChkMc"+i.ToString();
LitTxt.Text=i.ToString()+"、 "+Server.HtmlEncode(myReader.GetValue(1).ToString())+"<BR><Blockquote>";
LitBl.Text="</Blockquote><HR>";
ChkMc.Font.Size=11;
for(int j=1;j<=4;j++)
{
ChkMc.Items.Add(Server.HtmlEncode(myReader.GetValue(1+j).ToString()));
ChkMc.Items[j-1].Value=j.ToString();
}
mcStr+=myReader.GetValue(6).ToString(); //mcStr是存储随机生成试题答案的字符串变量
MyPanel.Controls.Add(LitTxt); //MyPanel为Panel容器控件
MyPanel.Controls.Add(ChkMc);
MyPanel.Controls.Add(LitBl);
i++;
}
myReader.Close();
dbconn.Close();现用如下代码来获取考生选择的答案for(int i=1;i<=10;i++) //由于随机生成了10道题,所以循环10次
{
for(int j=0;j<4;j++)
if(Request.Form["ChkMc"+i.ToString()+":"+j.ToString()]!=null)
mcs+="1"; //mcs是存储考生所选答案的字符串变量,已选用"1"表示,未选用"0"表示
else
mcs+="0";
}
上面的代码我试过了,可以得到预想的结果,上面生成的是多选题,用的是CheckBoxList,但如果我要改成实现单选题的效果而把CheckBoxList改为RadioButtonList,请问应该如何获取考生所选择的答案呢?
解决方案 »
- Flash文件在本地html正常,在.net的页面无法加载成功
- menu导航 用站点地图 <siteMap> 元素的下一级只需要一个 <siteMapNode> 元素。
- 关于嵌套datalist中的checkbox选中问题
- 如何在GridView点击选择时,DetailsView显示这条记录
- 水晶报表问题---------请教如何在原有的一个分组记录下,增加一个数据组循环?
- 求救啊! 为什么我4G的内存最多只能用2G
- 多用户登陆连接数据库
- ASP.NET中用什么方法设置 “验证码”?
- 请问如何把一个值传到框架里的页面里
- 大家帮帮忙啊,看看这个要怎么做,有关DataGrid的模版列问题
- 提个问题,什么是webpart??。。
- 执行存储过程时,总是提示从numeric转换到decimal出错
可以给些具体的代码吗?to:lingyunfeipu(凌云)
能把你的代码发给我学习一下吗?
支付一下两重循环不行吗?一重循环是Radiobuttonlist 子循环是List中的选项……
你能说清楚一些具体怎么做吗?
csdn啊,太让我失望了!
你有代码?我真的需要,请你发给我吧,
谢谢!
我是个初学者,你说的我不是太懂,如果你能给我些具体的代码那就最好了。
{
for(int j=0;j<4;j++)
if(Request.Form["ChkMc"+i.ToString()+":"+j.ToString()]!=null)
mcs+="1"; //mcs是存储考生所选答案的字符串变量,已选用"1"表示,未选用"0"表示
else
mcs+="0";
}
上面的代码我试过了,可以得到预想的结果,上面生成的是多选题,用的是CheckBoxList,但如果我要改成实现单选题的效果而把CheckBoxList改为RadioButtonList,请问应该如何获取考生所选择的答案呢?你已经实现了多选项,那么单的应该容易解决啊。你可以生成一个单选按钮组(一个组里只有一个单选可以被选中的),一组里有10个单行按钮,然后你再绑定到你随机生成的题。
我想应该可以解决了吧。
你说的不是动态生成那些控件吧?
我的程序里生成的10个RadioButtonList只是举个例子,这个数目最终是让用户来定的,所以如果是静态的做这10个RadioButtonList满足不了要求啊!