实验一
创建一个ASP.NET Web网站,用以实现在线知识问答。
1)第一次在浏览器中查看的页面如图1所示。
2) “知识类型”下拉列表中至少有三个选项;当选中“人文知识”选项,且按下“开始答题”按钮后,回传的页面及显示的内容如图2所示。
3)答题完毕,按下“提交”按钮后,可计算得分,会在页面下方显示得分及正确答案,如图3所示。要求:以编程方式,向页面动态添加Label控件,实现得分及答案的显示,具体做法详见教材P80~81。
4)可选Web控件如下:
DropDownList:输入知识类型信息
TextBox:输入姓名及编号等信息
RadioButton或RadioButtonList:制作单选题选项
CheckBox或CheckBosList:制作多选题选项
Button:“开始答题”及“提交”按钮
Panel:可用装载题目,其Visible属性初始为 false,使得“开始答题”按钮按下前题目不可见。
5)(选作)在页面下方再添加两个按钮,分别为“退出”和“重新答题”。用Button控件实现这两个按钮,并设置这两个Button控件的CommandName属性,将其设置为命令按钮,在同一个事件处理方法中编写这两个按钮的事件处理程序。当按下“退出”按钮后,网页跳转到另一页面,如图4所示。当按下“重新答题”按钮后,页面的题目隐藏,并且三个文本框的内容清空。
<body>
<form id="form1" runat="server">
<div>
<h1 style="text-align:center">在线知识问答系统</h1>
<p style="text-align:center">姓名:<asp:TextBox ID="UsersName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate ="UsersName" ErrorMessage="空"></asp:RequiredFieldValidator>
</p>
<p style="text-align:center">编号:<asp:TextBox ID="UsersNumber" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator2" ControlToValidate="UsersNumber" ValidationExpression="\d{8}" ErrorMessage="8" runat="server" />
</p>
<p style="text-align:center">Email:<asp:TextBox ID="UsersEmail" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="UsersEmail" ValidationExpression="^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$" ErrorMessage="错" runat="server" />
</p>
<p style="text-align:center">请选择知识类型?<asp:DropDownList ID="Knowledge" runat="server" >
<asp:ListItem>人文知识1</asp:ListItem>
<asp:ListItem>人文知识2</asp:ListItem>
<asp:ListItem Selected="True">人文知识3</asp:ListItem>
</asp:DropDownList></p>
<p style="text-align:center"><asp:Button ID="Button1" runat="server" oncommand="btn1_Click" Text="开始答题" CommandName="btn1" /></p>
<p style="text-align:center"><asp:Panel ID="panel01" runat="server" Visible="false">
<p style="text-align:center">一、单项选择题(每小题20分,共六十分)</p>
<p style="text-align:center">中国历史上疆域最大的朝代是?</p>
<p style="text-align:center"><asp:RadioButton ID="汉朝" runat="server" GroupName="dynasty" Text="汉朝" /></p>
<p style="text-align:center"><asp:RadioButton ID="元朝" runat="server" GroupName="dynasty" Text="元朝" /></p>
<p style="text-align:center"><asp:RadioButton ID="宋朝" runat="server" GroupName="dynasty" Text="宋朝" /></p>
<p style="text-align:center">《梦溪笔谈》的作者是?</p>
<p style="text-align:center"><asp:RadioButton ID="吴承恩" runat="server" GroupName="author" Text="吴承恩" /></p>
<p style="text-align:center"><asp:RadioButton ID="沈括" runat="server" GroupName="author" Text="沈括" /></p>
<p style="text-align:center"><asp:RadioButton ID="徐霞客" runat="server" GroupName="author" Text="徐霞客" /></p>
<p style="text-align:center">焦糖生产技术是从哪里传入中国的?</p>
<p style="text-align:center"><asp:RadioButton ID="非洲" runat="server" GroupName="country" Text="非洲" /></p>
<p style="text-align:center"><asp:RadioButton ID="澳洲" runat="server" GroupName="country" Text="澳洲" /></p>
<p style="text-align:center"><asp:RadioButton ID="印度" runat="server" GroupName="country" Text="印度" /></p>
<p style="text-align:center">二、多项选择题(每小题20分,共四十分))</p>
<p style="text-align:center">下列哪些是希腊神话中的人物?</p>
<p style="text-align:center"><asp:CheckBox ID="赫尔墨斯" runat="server" Text="赫尔墨斯" /></p>
<p style="text-align:center"><asp:CheckBox ID="宙斯" runat="server" Text="宙斯" /></p>
<p style="text-align:center"><asp:CheckBox ID="阿波罗" runat="server" Text="阿波罗" /></p>
<p style="text-align:center"><asp:CheckBox ID="亚瑟王" runat="server" Text="亚瑟王" /></p>
<p style="text-align:center">下列哪些作品出自美国作家?</p>
<p style="text-align:center"><asp:CheckBox ID="汤姆索亚历险记" runat="server" Text="汤姆·索亚历险记" /></p>
<p style="text-align:center"><asp:CheckBox ID="白鲸" runat="server" Text="白鲸" /></p>
<p style="text-align:center"><asp:CheckBox ID="美国的悲剧" runat="server" Text="美国的悲剧" /></p>
<p style="text-align:center"><asp:CheckBox ID="雾都的孤儿" runat="server" Text="雾都的孤儿" /></p>
<p style="text-align:center"><asp:Button ID="Button2" runat="server" oncommand="btn2_Click" Text="提交" CommandName="btn2" /></p>
</asp:Panel></p>
<p style="text-align:center"><asp:Panel ID="panel02" runat="server" Visible="false">
</asp:Panel></p>
<p style="text-align:center"><asp:Button ID="Button3" runat="server" oncommand="btn3_Click" Text="重新开始" CommandName="btn3" /></p>
</div>
</form>
</body>
aspx.cs文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class basic_imformation : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
}
protected void btn1_Click(object sender, EventArgs e)
{
panel01.Visible = true;
}
protected void btn2_Click(object sender, EventArgs e)
{
int score = 0;
panel02.Visible = true;
if (元朝.Checked)
{
score = score + 20;
}
if (沈括.Checked)
{
score = score + 20;
}
if (印度.Checked)
{
score = score + 20;
}
if (赫尔墨斯.Checked && 宙斯.Checked && 阿波罗.Checked)
{
score = score + 20;
}
if (汤姆索亚历险记.Checked && 白鲸.Checked && 美国的悲剧.Checked)
{
score = score + 20;
}
Label label1 = new Label();
label1.Text = "<p style='text - align:center'>成绩:" + score+ "</p>";
this.form1.Controls.Add(label1);
Label label2 = new Label();
label2.Text = "<p style='text - align:center'>正确答案:</p>";
this.form1.Controls.Add(label2);
Label label3 = new Label();
label3.Text = "<p style='text - align:center'>一、1.元朝 2.沈括 3.印度</p>";
this.form1.Controls.Add(label3);
Label label4 = new Label();
label4.Text = "<p style='text - align:center'>二、1.赫尔墨斯、宙斯、阿波罗 2.汤姆·索亚历险记、白鲸、美国的悲剧</p>";
this.form1.Controls.Add(label4);
}
protected void btn3_Click(object sender, EventArgs e)
{
panel01.Visible = false;
UsersName.Text = "";
UsersNumber.Text = "";
UsersEmail.Text = "";
}
}
效果图