前言
为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!
一、实验目的
1.理解ASP.NET 页面事件处理流程;
2.掌握ASP.NET 标准控件的应用;
3.理解客户端和服务器端验证;
4.掌握ASP.NET各验证控件的使用。
二、实验环境
Visual Studio 2019 ASP.Net Framework
三、实验内容
1.设计并实现一个简易的计算器。
2.设计并实现一个查询教师课表的联动下拉列表框页面。
3.设计并实现一个带验证控件的用户注册页面。
四、代码及截图
实验一:
代码部分:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication3
{
public partial class WebForm1 : System.Web.UI.Page
{
private static int a = 0; private static string opr = "";
private bool sinopr=false;
private static int numa=0;
private static int ans=0;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
int num=1;
a = a * 10 + num;
TextBox1.Text = a.ToString();
}
protected void Button2_Click(object sender, EventArgs e)
{
int num = 2;
a = a * 10 + num;
TextBox1.Text = a.ToString();
}
protected void Button3_Click(object sender, EventArgs e)
{
int num = 3;
a = a * 10 + num;
TextBox1.Text = a.ToString();
}
protected void Button7_Click(object sender, EventArgs e)
{
int num = 4;
a = a * 10 + num;
TextBox1.Text = a.ToString();
}
protected void Button8_Click(object sender, EventArgs e)
{
int num = 5;
a = a * 10 + num;
TextBox1.Text = a.ToString();
}
protected void Button9_Click(object sender, EventArgs e)
{
int num = 6;
a = a * 10 + num;
TextBox1.Text = a.ToString();
}
protected void Button14_Click(object sender, EventArgs e)
{
int num = 0;
a = a * 10 + num;
TextBox1.Text = a.ToString();
}
protected void Button10_Click(object sender, EventArgs e)
{
int num = 7;
a = a * 10 + num;
TextBox1.Text = a.ToString();
}
protected void Button11_Click(object sender, EventArgs e)
{
int num = 8;
a = a * 10 + num;
TextBox1.Text = a.ToString();
}
protected void Button12_Click(object sender, EventArgs e)
{
int num = 9;
a = a * 10 + num;
TextBox1.Text = a.ToString();
}
protected void Button4_Click(object sender, EventArgs e)
{
numa = a;
a = 0;
opr = "+";
sinopr = true;
TextBox1.Text = "";
}
protected void Button5_Click(object sender, EventArgs e)
{
numa = a;
a = 0;
opr = "-";
sinopr = true;
TextBox1.Text = "";
}
protected void Button6_Click(object sender, EventArgs e)
{
numa = a;
a = 0;
opr = "*";
sinopr = true;
TextBox1.Text = "";
}
protected void Button13_Click(object sender, EventArgs e)
{
if (opr == "+") ans=a + numa;
else if (opr == "-") ans = numa - a;
else if (opr == "*") ans = a * numa;
TextBox1.Text = ans.ToString();
}
protected void Button15_Click(object sender, EventArgs e)
{
a = 0; opr = ""; numa = 0; ans = 0;
TextBox1.Text = "";
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication3.WebForm1" %>
<!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>2021.3.15.Test</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="简易计算器" Width="135px" style="text-align:center"></asp:Label>
</div>
<asp:TextBox ID="TextBox1" runat="server" Width="126px"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="1 " Width="22px" length="20px"/>
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="2 " Width="22px" length="20px"/>
<asp:Button ID="Button3" runat="server" onclick="Button3_Click" Text="3 " Width="22px" length="20px"/>
<asp:Button ID="Button15" runat="server" onclick="Button15_Click" Text="CE" width="36px" length="20px"/>
<br />
<asp:Button ID="Button7" runat="server" onclick="Button7_Click" Text="4 " Width="22px" length="20px"/>
<asp:Button ID="Button8" runat="server" onclick="Button8_Click" Text="5 " Width="22px" length="20px"/>
<asp:Button ID="Button9" runat="server" onclick="Button9_Click" Text="6 " Width="22px" length="20px"/>
<br />
<asp:Button ID="Button10" runat="server" onclick="Button10_Click" Text="7 " Width="22px" length="20px"/>
<asp:Button ID="Button11" runat="server" onclick="Button11_Click" Text="8 " Width="22px" length="20px"/>
<asp:Button ID="Button12" runat="server" onclick="Button12_Click" Text="9 " Width="22px" length="20px"/>
<asp:Button ID="Button14" runat="server" onclick="Button14_Click" Text="0 " Width="22px" length="20px"/>
<br />
<asp:Button ID="Button4" runat="server" onclick="Button4_Click" Text="+" Width="22px" length="20px"/>
<asp:Button ID="Button5" runat="server" Text="-" onclick="Button5_Click" Width="22px" length="20px"/>
<asp:Button ID="Button6" runat="server" Text="*" onclick="Button6_Click" Width="22px" length="20px"/>
<asp:Button ID="Button13" runat="server" onclick="Button13_Click" Text="=" Width="22px" length="20px"/>
</form>
</body>
</html>
运行截图:
实验二:
代码部分:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace exp1._2
{
public partial class exp1_2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
teacher();
}
}
private void teacher()
{
switch (DropDownList3.SelectedValue)
{
case "计算机科学与技术学院":
{
DropDownList4.Items.Clear();
DropDownList4.Items.Add(new ListItem("潘平"));
DropDownList4.Items.Add(new ListItem("曹明"));
DropDownList4.Items.Add(new ListItem("陈鹤"));
break;
}
case "数学与统计学院":
{
DropDownList4.Items.Clear();
DropDownList4.Items.Add(new ListItem("王雷"));
DropDownList4.Items.Add(new ListItem("王磊"));
break;
}
case "物理学院":
{
DropDownList4.Items.Clear();
DropDownList4.Items.Add(new ListItem("赵闯"));
DropDownList4.Items.Add(new ListItem("赵冲"));
break;
}
default:
{ DropDownList4.Items.Clear(); DropDownList4.Items.Add("NULL"); break; }
}
}
protected void DropDownList3_SelectedIndexChanged(object sender, EventArgs e)
{
teacher();
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="exp1-2.aspx.cs" Inherits="exp1._2.exp1_2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="学年:"></asp:Label>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
<asp:ListItem>2013-2014</asp:ListItem>
<asp:ListItem>2014-2015</asp:ListItem>
<asp:ListItem>2015-2016</asp:ListItem>
<asp:ListItem>2016-2017</asp:ListItem>
<asp:ListItem>2017-2018</asp:ListItem>
</asp:DropDownList>
<asp:Label ID="Label2" runat="server" Text="学期:" AutoPostBack="true"></asp:Label>
<asp:DropDownList ID="DropDownList2" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:DropDownList>
<asp:Label ID="Label3" runat="server" Text="分院:"></asp:Label>
<asp:DropDownList ID="DropDownList3" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList3_SelectedIndexChanged">
<asp:ListItem>计算机科学与技术学院</asp:ListItem>
<asp:ListItem>数学与统计学院</asp:ListItem>
<asp:ListItem>物理学院</asp:ListItem>
</asp:DropDownList>
<asp:Label ID="Label4" runat="server" Text="教师:" AutoPostBack="true"></asp:Label>
<asp:DropDownList ID="DropDownList4" runat="server" >
<asp:ListItem>NULL</asp:ListItem>
</asp:DropDownList>
</div>
</form>
</body>
</html>
运行截图:
实验三:
代码部分:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace exp1._2
{
public partial class exp1_3_1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
}
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
string cid = args.Value;
args.IsValid = true;
try
{ DateTime.Parse(cid.Substring(6, 4) + "-" + cid.Substring(10, 2) + "-" + cid.Substring(12, 2)); }
catch
{
args.IsValid = false;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Label12.Text = "";
if(Page.IsValid)
{
Label12.Text = "验证通过!";
}
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="exp1-3-1.aspx.cs" Inherits="exp1._2.exp1_3_1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="用户名:" Width="80px"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="请输入用户名!" ControlToValidate="TextBox1" Display="Dynamic" SetFocusOnError="true" >*</asp:RequiredFieldValidator>
<br />
<asp:Label ID="Label3" runat="server" Text="密码:" Width="80px"></asp:Label>
<asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="请输入密码!" Display="Dynamic" ControlToValidate="TextBox2" SetFocusOnError="true" >*</asp:RequiredFieldValidator>
<br />
<asp:Label ID="Label5" runat="server" Text="确认密码:" Width="80px"></asp:Label>
<asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="请输入确认密码!" ControlToValidate="TextBox3" Display="Dynamic" SetFocusOnError="true">*</asp:RequiredFieldValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="密码与确认密码不一致!" ControlToCompare="TextBox2" ControlToValidate="TextBox3" Display="Dynamic" SetFocusOnError="true" ></asp:CompareValidator>
<br />
<asp:Label ID="Label7" runat="server" Text="生日:" Width="80px"></asp:Label>
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="请输入生日!" ControlToValidate="TextBox4" Display="Dynamic" SetFocusOnError="true">*</asp:RequiredFieldValidator>
<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="日期应在1900-1-1到2021-1-1之间" ControlToValidate="TextBox4" Display="Dynamic" MaximumValue="2020-1-1" MinimumValue="1900-1-1" SetFocusOnError="true" Type="Date"></asp:RangeValidator>
<br />
<asp:Label ID="Label9" runat="server" Text="电话号码:" Width="80px"></asp:Label>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ErrorMessage="请输入电话号码!" ControlToValidate="TextBox5" Display="Dynamic" SetFocusOnError="true" >*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="电话号码格式应为010-12345678!" ControlToValidate="TextBox5" Display="Dynamic" ValidationExpression="\d{3}-\d{8}" SetFocusOnError="true"></asp:RegularExpressionValidator>
<br />
<asp:Label ID="Label11" runat="server" Text="身份证号:" Width ="80px"></asp:Label>
<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ErrorMessage="请输入身份证号!" ControlToValidate="TextBox6" Display="Dynamic" SetFocusOnError="true">*</asp:RequiredFieldValidator>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="身份证号错误!" ControlToValidate="TextBox6" Display="Dynamic" SetFocusOnError="true" OnServerValidate="CustomValidator1_ServerValidate"></asp:CustomValidator>
</div>
<asp:Button ID="Button1" runat="server" Text="确定" OnClick="Button1_Click" Width="50px" />
<br />
<asp:Label ID="Label12" runat="server" Width="80px"></asp:Label>
<br />
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="true" ShowSummary="false"/>
</form>
</body>
</html>
运行截图:
五、实验总结
在实验一的编程过程中,出现了运行时按钮字符不居中的情况,界面效果令人不甚满意。在经过查阅资料并进行多次调试与改进后,我们调整了按钮的大小(即长度与宽度),并最终达到了较为满意的界面效果。