实验二 ASP.NET 3.5标准控件
姓名:
学号:
班级:
一.实验目的
(1)理解ASP.NET 3.5页面事件处理流程。
(2) 理解ASP.NET 3.5标注控件的应用。
二.实验内容及要求
1.设计并实现一个简易的计算器
要求如下:
(1)页面浏览效果如图2-1所示
(2)仿照一般计算器的工作方式,实现加和减的功能。
图2-1 “简易计算器”浏览效果
2.设计并实现一个用于查询教师课表的联动下拉列表框页面
要求如下:
(1)页面浏览效果如图2-2所示
(2)“学年”下拉列表框中添加十个数据项:当前学年及之前的九个学年。
(3)“学期”下拉列表框中添加两个数据项:1和2.
(4)“分院”下拉列表框中添加三个数据项:“数学与信息工程学院”、“机电学院”和“外国语学院”。
(5)“教师”下拉列表框中的数据项根据不同的分院产生。
图2-2 联动下拉列表框浏览效果
3.设计并实现一个用于单项选择题的测试页面
要求如下:
(1)页面浏览效果如图2-3所示
(2)试题要求和选择题必须动态生成。
(3)如图2-4所示,当单击提交按钮时,给出选择的答案。
     
图2-3 测试页面效果(1)                图2-4 测试页面效果(2)
三.实验步骤
1. 设计并实现一个简易的计算器
(1)设计Web窗体
新建一个Web窗体,切换到设计视图。如图2-5所示,向页面添加1个用于布局的1行1列黑边框表格。向表格中添加一个TextBox控件、6个Botton控件。
图2-5
(2)设置属性
Web窗体中各控件的属性设置如表2-1所示。
表2-1 各控件的属性设置表
控件
属性名
属性值
说明
TextBox
ID
txtDisplay
用于显示输入数字的文本框控件编程名称
ReadOnly
True
不能更改文本框中的文本,默认值为False
Botton
ID
btnOne
“数字1”按钮的编程名称
Text
1
“数字1”按钮上显示的文本
Botton
ID
btnTwo
“数字2”按钮的编程名称
Text
2
“数字2”按钮上显示的文本
Botton
ID
btnThree
“数字3”按钮的编程名称
Text
3
“数字3”按钮上显示的文本
Botton
ID
btnAdd
“+”按钮的编程名称
Text
+
“+”按钮上显示的文本
Botton
ID
btnSubtract
“-”按钮的编程名称
Text
-
“-”按钮上显示的文本
Botton
ID
btnEqual
“=”按钮的编程名称
Text
=
“=”按钮上显示的文本
(3)编写事件、方法代码
在所有事件、方法外声明静态字段。静态字段保证了其中的数据可以在所有的事件、方法中被访问,并能在事件代码或方法代码执行结束后保留数据。其中,静态字段num1用于存储算式中的第一个数字字符串,初始值为“0”;num2用于存储算式中的第二个数字字符串,初始值为“0”;total用于存储将所有输入的数连接后的数字字符串,初始值为“”(空字符串);sign用于存储运算符号,初始值为“”。代码如下:
static string num1 = "0", num2 = "0", total = "", sign = "";
按钮btnOne被单击时执行的事件代码如下:
protected void btnOne_Click(object sender, EventArgs e)
    {
        total += "1";  //将数字字符串"1"与total原值连接后再存入total
        txtDisplay.Text = total;
    }
按钮btnTwo被单击时执行的事件代码如下:
protected void btnTwo_Click(object sender, EventArgs e)
    {
        total += "2";
        txtDisplay.Text = total;
    }
按钮btnThree被单击时执行的事件代码如下:
protected void btnThree_Click(object sender, EventArgs e)
    {
        total += "3";
        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()计算结果
    }
    /// <summary>
    /// 计算“num1 运算符 num2”的结果
    /// </summary>
    protected void Count()
    {
        num2 = txtDisplay.Text;
        if (num2 == "")  //num2值为空字符串
        {
            num2 = "0";
        }
        switch (sign)  //根据不同的运算符分别计算结果
        {
            case "+":
                txtDisplay.Text = (int.Parse(num1) + int.Parse(num2)).ToString();
                num1 = "0";
                num2 = "0";
                total = "";
                sign = "";
                break;
            case "-":
                txtDisplay.Text = (int.Parse(num1) - int.Parse(num2)).ToString();
                num1 = "0";
                num2 = "0";
                total = "";
                sign = "";
                break;
        }
    }
}
(4)浏览建立的Web窗体进行测试。
2. 设计并实现一个用于查询教师课表的联动下拉列表框页面
(1)设计Web窗体
新建一个Web窗体,切换到设计视图。如图2-6所示,向页面输入“学年:”、“学期:”、“分院:”和“教师:”等信息,适当设置字体大小。再向页面添加4个DropDownList控件,适当调整个控件的大小和位置。
图2-6
(2)设置属性
Web窗体中各控件的属性设置如表2-2所示。
表2-1 各控件的属性设置表
控件
属性名
属性值
说明
DropDownList
ID
ddlYear
“学年”下拉列表框的编程名称
AutoPostBack
True
当列表项内容改变后,自动触发页面往返
DropDownList
ID
ddlTerm
“学期”下拉列表框的编程名称
AutoPostBack
textbox控件边框设置True
当列表项内容改变后,自动触发页面往返
DropDownList
ID
ddlCollege
“分院”下拉列表框的编程名称
AutoPostBack
True
当列表项内容改变后,自动触发页面往返
DropDownList
ID
ddlTeacher
“教师”下拉列表框的编程名称
AutoPostBack
True
当列表项内容改变后,自动触发页面往返
(3)编写事件、方法代码
Web窗体首次载入时执行的代码如下:
protected void Page_Load(object sender, EventArgs e)
    {
        //页面第一次载入,向各下拉列表填充值
        if (!IsPostBack)
        {
            BindYear();
            BindTerm();
            BindCollege();
            BindTeacher();
        }
    }
当“分院”下拉列表框中选择项改变时,触发的事件代码如下:
protected void ddlCollege_SelectedIndexChanged(object sender, EventArgs e)
    {
        BindTeacher();
    }
自定义方法BingYear()的代码如下:
protected void BindYear()
    {
        //清空学年下拉列表中项

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。