为了在GridView中显示科目,还需要绑定数据,首先在代码隐藏文件中编写实现页面第一次加载时将GridView控件绑定到数据源,然后将数据库中的数据绑定到GridView控件,接着为GridView控件分别添加RowEditing、RowUpdating、RowCancelingEdit、RowDeleting事件,这些事件分别在单击编辑更新取消删除时发生,为防止用户操作失误删除科目,在删除时应提示是否删除,这个事件在RowDataBound事件中编写代码,实现对删除操作的判定 5.6试题管理模块
拥有过管理员权限才可进入试题管理模块(QuestionManagement.aspx),设计图如下:
图 5.5 试题管理模块设计视图
首先要实现对第一次加载该页面时的绑定数据,然后对GridView控件进行绑定代码,接着对修改和删除事件添加相应代码,修改和增加页面用同一个页面(AddQuestion.aspx)。修改时要将数据传入AddQuestion.aspx页面。代码如下:
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) {
string courseID = ddlCourseName.SelectedValue.ToString();
string questionID = GridView1.Rows[e.NewEditIndex].Cells[0].Text.ToString().Trim(); string questionContent =
GridView1.Rows[e.NewEditIndex].Cells[1].Text.ToString().Trim();
string a1 = GridView1.Rows[e.NewEditIndex].Cells[2].Text.ToString().Trim(); string a2 = GridView1.Rows[e.NewEditIndex].Cells[3].Text.ToString().Trim(); string a3 = GridView1.Rows[e.NewEditIndex].Cells[4].Text.ToString().Trim(); string a4 = GridView1.Rows[e.NewEditIndex].Cells[5].Text.ToString().Trim(); string rightAnswer =
GridView1.Rows[e.NewEditIndex].Cells[6].Text.ToString().Trim();
string str = \+ \\ Response.Redirect(str);
} AddQuestion.aspx页面的设计视图如下:
图 5.6 增加试题模块设计视图
在AddQuestion.aspx.cs中编写代码,将修改前的信息加载到页面上。
因为增加和修改页面在同一个页面中完成,所以页面中的确定button要实现增加和修改两个功能,事件代码如下:
protected void btnOK_Click(object sender, EventArgs e) {
string courseID = ddlCourseName.SelectedValue; string questionContent = txtQuestion.Text.Trim(); string a1 = txtA.Text.Trim(); string a2 = txtB.Text.Trim(); string a3 = txtC.Text.Trim(); string a4 = txtD.Text.Trim();
string rightAnswer = rblAnswer.SelectedItem.Text;
string connectionString = \ string sqlString;
if (Request.Params[\添加 {
sqlString = \answer3, answer4, rightAnswer) values(\
courseID + \+ \ }
else //修改 {
sqlString = \+ questionContent +
\
+ a4 + \
rightAnswer + \ }
SqlConnection con = new SqlConnection(connectionString); SqlCommand com = new SqlCommand(sqlString, con); con.Open();
com.ExecuteNonQuery(); con.Close();
Response.Redirect(\ }
protected void btnCancel_Click(object sender, EventArgs e) {
Response.Redirect(\
} 5.7用户管理模块
用户管理模块只有一个GridView控件直接为其编写页面加载代码和事件代码即可,在这里主要是更新用户信息的实现比较难。 5.8个人信息修改模块
此模块为普通用户登录后显示的模块,可进行用户的个人信息修改,此页面与用户注册页面非常相似,只有两点不同:一是用户名不能修改,要将所有显示用户名的textBox的Enable属性设置为false,二是为了确定操作者的身份,修改个人信息时要输入原用户名密码,这里设置了一个CustomValidator用户自定义验证控件,将Custom validator控件的ID的属性设置为cvOldPassword,ContortionlToValidate属性设置为txtOldPassword,ErrorMessage属性设置为“原密码不正确”。
最后实现确定修改和取消修改事件,双击进入隐藏代码文件编写Click事件。
6.系统运行测试
6.1运行环境
Web服务器 Windows XP/vista/win7、 IIS5.1、.netframework 2.0 数据库服务器 Windows XP/vista/win7 、SQL Server 2008 客户机 Windows 2000/XP及其以上 客户计算机必须满足的条件:
(1)CPU--Intel PentiumII或更高的处理器 (2)内存--64MB内存以上
(3)硬盘要有300M以上的可用空间
(4)标准的VGA显示或更高分辨率的显示器 (5)鼠标、键盘等外设 6.2测试及操作过程 6.2.1登陆页面
在IE浏览器查看时进入页面,在登陆页面登录,自动验证用户名,若用户为管理员则进入管理员页面,若用户为普通用户则进入普通用户页面,若用户密码错误则弹出对话框,单击确定返回登陆页面,登陆页面如下图所示:
图 6.1登陆页面
图 6.2 密码错误时显示
6.2.2管理员页面
管理员可以进行答题测、试科目管理、题库管理、录入试题、用户管理等相关操作,管理员页面如下图所示:
图 6.3 管理员登陆页面
管理员可以对已录入的试题进行测试,在本页面可以选择试卷,隐藏显示答案,交卷,重做全部题或者只是重做答错的题,页面如下图所示: