Text Botton Botton Botton Botton ID Text ID Text ID Text ID Text 2 btnThree 3 btnAdd + btnSubtract - btnEqual = “数字2”按钮上显示的文本 “数字3”按钮的编程名称 “数字3”按钮上显示的文本 “+”按钮的编程名称 “+”按钮上显示的文本 “-”按钮的编程名称 “-”按钮上显示的文本 “=”按钮的编程名称 “=”按钮上显示的文本 (3)编写事件、方法代码
在所有事件、方法外声明静态字段。静态字段保证了其中的数据可以在所有的事件、方法中被访问,并能在事件代码或方法代码执行结束后保留数据。其中,静态字段num1用于存储算式中的第一个数字字符串,初始值为“0”;num2用于存储算式中的第二个数字字符串,初始值为“0”;total用于存储将所有输入的数连接后的数字字符串,初始值为“”(空字符串);sign用于存储运算符号,初始值为“”。代码如下:
static string num1 = \按钮btnOne被单击时执行的事件代码如下: protected void btnOne_Click(object sender, EventArgs e) {
total += \ //将数字字符串\与total原值连接后再存入total txtDisplay.Text = total; }
按钮btnTwo被单击时执行的事件代码如下: protected void btnTwo_Click(object sender, EventArgs e) {
total += \
txtDisplay.Text = total; }
按钮btnThree被单击时执行的事件代码如下: protected void btnThree_Click(object sender, EventArgs e) {
total += \
txtDisplay.Text = total; }
按钮btnAdd被单击时执行的事件代码如下: protected void btnAdd_Click(object sender, EventArgs e) {
if (sign.Length == 1) //sign已存储运算符号 {
Count(); //调用Count()方法计算结果 num1 = txtDisplay.Text; sign = \ }
else //sign未存储运算符号
{
num1 = txtDisplay.Text; txtDisplay.Text = \ total = \ sign = \ } }
按钮btnSubtract被单击时执行的事件代码如下: protected void btnSubtract_Click(object sender, EventArgs e) {
if (sign.Length == 1) //sign已存储运算符号 {
Count(); //调用自定义方法Count()计算结果 num1 = txtDisplay.Text; sign = \ }
else //sign未存储运算符号 {
num1 = txtDisplay.Text; txtDisplay.Text = \ total = \ sign = \ } }
按钮btnEqual被单击时执行的事件代码如下: protected void btnEqual_Click(object sender, EventArgs e) {
Count(); //调用自定义方法Count()计算结果 }
///
/// 计算“num1 运算符 num2”的结果 /// protected void Count() {
num2 = txtDisplay.Text;
if (num2 == \ //num2值为空字符串 {
num2 = \ }
switch (sign) //根据不同的运算符分别计算结果 {
case \
txtDisplay.Text = (int.Parse(num1) + int.Parse(num2)).ToString(); num1 = \
num2 = \ total = \ sign = \ break; case \
txtDisplay.Text = (int.Parse(num1) - int.Parse(num2)).ToString(); num1 = \ num2 = \ total = \ sign = \ break; } } }
(4)浏览建立的Web窗体进行测试。
2. 设计并实现一个用于查询教师课表的联动下拉列表框页面 (1)设计Web窗体
新建一个Web窗体,切换到设计视图。如图2-6所示,向页面输入“学年:”、“学期:”、“分院:”和“教师:”等信息,适当设置字体大小。再向页面添加4个DropDownList控件,适当调整个控件的大小和位置。
图2-6
(2)设置属性
Web窗体中各控件的属性设置如表2-2所示。
表2-1 各控件的属性设置表
控件 DropDownList DropDownList DropDownList DropDownList 属性名 ID AutoPostBack ID AutoPostBack ID AutoPostBack ID AutoPostBack (3)编写事件、方法代码
Web窗体首次载入时执行的代码如下:
protected void Page_Load(object sender, EventArgs e) {
//页面第一次载入,向各下拉列表填充值 if (!IsPostBack) {
BindYear(); BindTerm(); BindCollege(); BindTeacher();
属性值 ddlYear True ddlTerm True ddlCollege True True 说明 “学年”下拉列表框的编程名称 当列表项内容改变后,自动触发页面往返 “学期”下拉列表框的编程名称 当列表项内容改变后,自动触发页面往返 “分院”下拉列表框的编程名称 当列表项内容改变后,自动触发页面往返 当列表项内容改变后,自动触发页面往返 ddlTeacher “教师”下拉列表框的编程名称 } }
当“分院”下拉列表框中选择项改变时,触发的事件代码如下: protected void ddlCollege_SelectedIndexChanged(object sender, EventArgs e) {
BindTeacher(); }
自定义方法BingYear()的代码如下: protected void BindYear() {
//清空学年下拉列表中项 //向学年下拉列表添加项
for (int i = startYear; i <= currentYear; i++) {
ddlYear.Items.Add(new ListItem((i - 1).ToString() + \ }
//设置年份下拉列表默认项
ddlYear.SelectedValue = (currentYear - 1).ToString() + \ }
自定义方法BingTerm()的代码如下: protected void BindTerm() { d
//向学期下拉列表添加项 for (int i = 1; i <= 2; i++) { } }
自定义方法BingCollege()的代码如下: protected void BindCollege() { }
自定义方法BingTeacher()的代码如下: protected void BindTeacher() {
switch (ddlCollege.SelectedValue) //根据不同的分院产生不同的教师姓名 {
case \数学与信息工程学院\ //添加教师列表。在实际工程中,数据来源于数据库
break; case \外国语学院\ break; case \机电学院\ break;