dFieldValidatorUserName和RequriedFieldValidatorPassword。RFVUserName非空验证控件对用户名称进行验证,RFVPassword对用户密码进行非空验证。这两个非空验证在点击"登陆"按钮时发挥作用。
登陆入口界面如图4.2-4.3所示:
用户点击"登陆"按钮触发事件btn_login_Click(),该事件实现用户的登陆的验证过程。如果用户输入的是正确的用户名和密码,用户就可以登陆到系统中,否则页面弹出用户名或密码错误的对话框如图4.4所示。
用户点击欢迎窗口上的"退出系统"按钮,就可以退出该系统。单击该按钮触发事件LinkButton1_Click()把网页中的session对象清空。这一处理有两个原因。首先,如果用户没有注销就离开了,下一个用户就有可能使用前一个用户未过期的session对象,这样会严重影响到安全性。另外,如果所有用户都不注销,则session对象会继续占用有效的资源直到过期。当用户数量很多的时候,就会造成网络资源的浪费。
该事件LinkButton1_Click()的代码如下:
private void LinkButton1_Click(object sender, System.EventArgs e)
{
this.Page.Session.Remove("UserID");
this.tab_login.Visible=true;
tab_logined.Visible=false;
}
4.1.2用户注册界面设计
新用户若想登陆本系统使用本系统的一些功能就必须进行用户注册,用户注册时需要输入用户名、用户密码、用户真实、用户地址和用户电子邮件等,设计如图4.5所示:
用户注册页面中的13个文本输入框分别用于输入用户的用户名、用户密码、用户真实、用户性别、生日、住址、邮编、联系电话、QQ号码、MSN、电子邮箱和个人Blog等等用户信息。注册页面还使用了5个RequiredFieldValidator非空验证控件和4个RegularExpressionValidator正则表达式控件分别验证用户的输入,非空验证控件RequiredFieldValidator1对用户ID进行非空验证、非空验证控件RequiredFieldValidator2对用户密码进行非空验证、非空验证控件RequiredFieldValidator3对用户确认密码进行非空验证,非空验证控件RequiredFieldValidator4对用户的真实进行非空验证,非空验证控件RequiredFieldValidator7对用户电子邮箱进行非空验证,控件RangeValidator2对输入的日期格式进行验证,RegularExpressionValidator2对用户输入的邮编长度进行验证,RegularExpressionValidator3对用户输入的电子邮件格式进行验证,控件CompareValidator1对用户输入的密码和确认密码的一致性进行验证[16]。
点击"下一步"按钮触发事件btn_reg_Click()。该事件提交新用户的注册信息到用户信息表中,该事件的主要代码如下:
private void btn_reg_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
Class.DataAccess dataAccess=new xyl.Class.DataAccess();
//检查用户名是否存在
if(dataAccess.UserIsExists(this.txt_user_id.Text.Trim()))
{
Class.JavaScript.Alert
(this,"用户名:"+this.txt_user_id.Text+"已经存在!");
}
else
{
try
{
if(dataAccess.SaveUserInfo(this.txt_user_id.Text.Trim(),
this.txt_password.Text.Trim(),this.txt_name_desc.Text.Trim(),
this.dro_sex.SelectedValue,this.txt_birthday.Text.Trim(),
this.txt_address.Text.Trim(),this.txt_zipcode.Text,
this.txt_tel.Text.Trim(),this.txt_qq.Text.Trim(),
this.txt_msn.Text.Trim(),this.txt_email.Text,this.txt_blog.Text))
{
//保存用户信息成功,将用户登入系统
this.Page.Session["UserID"]=this.txt_user_id.Text.Trim();
this.Response.Redirect("AddCatalog.aspx");
}
}
catch(System.Exception Err)
{
Class.JavaScript.Alert(this,Err.Message.ToString());
}
}
}
}
}
说明:如果输入的用户名已经存在,那么系统将提示"已存在用户名"。
点击"取消"按钮触发事件CancelBtn_Click(),该事件实现自动跳转到站点首页Default.aspx的功能。它的代码如下:
private void CancelBtn_Click() (object sender, System.EventArgs e)
{
Reponse.Redirect("~Default.aspx");
}
4.1.3加入班级界面的设计
用户如果注册成功单击"下一步"页面将转"AddCatalog.aspx",在这个页面里用户可以选择加入现有班级,或者创建新的班级。
(1)创建新班级
如果用户想加入的班级不存在,那么用户自己可以创建新的班级,界面如图4.6所示:
用户创建班级时需要在下拉列表框里选择要创建的班级的年份(界次),然后在下面的文本框里写上班级名称,点击"增加班级"就可以创建新的班级。点击"增加班级"触发事件btn_reg_Click()。该事件的代码如下:
private void btn_reg_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{try
{
if(txt_class_name.Text.Trim().Length>0)
{
if(this.dro_add_year.SelectedIndex>0)
{
string strInsert="INSERT INTO CLASS (CLASS_DESC, TERM) VALUES ('"+txt_class_name.Text.Trim()+"',"+this.dro_add_year.SelectedValue+")";
Class.DataAccess dataAccess=new xyl.Class.DataAccess();
dataAccess.AddSqlCommandText(strInsert);
if(dataAccess.ExecDataAdapterUpdate())
{
ShowClass();
}
}
else
{
Class.JavaScript.Alert(this,"请选择年份!",dro_add_year.ID) ;
}
}
else
{
Class.JavaScript.Alert(this,"请输入班级名称!
",txt_class_name.ID) ;
}
}
catch(System.Exception Err)
{
Class.JavaScript.Alert(this,Err.Message.ToString());
}
}
(2)加入已有的班级,界面如图4.7所示:
用户创建班级后就可以在下一个下拉列表框中选择相应的年份(界次),在所属班级的下拉列表框里就可以看到刚才创建的班级,然后用户就可以选择该班级进行加入。用户选择完要加入的班级
上一篇:
基于单片机的水温控制系统
下一篇:
老弱者应该怎样安度盛夏?