步步为营 .NET三层架构解析 七、UI的设计(登陆页面、注册页页和添加部门页面)
在我们设计好了三层架构的SQLHelper、Model、DAL和BLL后,我们要开始来调用它设计好的功能了。
首先我们来设计Login.aspx,先看界面的设计:
<table> <tr> <td style= "width: 100px; text-align: right" > 帐户名:</td> <td style= "width: 100px" > <asp:TextBox ID= "txtUserName" runat= "server" ></asp:TextBox></td> </tr> <tr> <td style= "width: 100px; text-align: right" > 密码:</td> <td style= "width: 100px" > <asp:TextBox ID= "txtPassWord" runat= "server" TextMode= "Password" ></asp:TextBox></td> </tr> <tr> <td style= "width: 100px" > </td> <td style= "width: 100px" > <asp:Button ID= "btnLogin" runat= "server" OnClick= "btnLogin_Click1" Text= "登陆" /></td> </tr> </table> |
再来看Login.aspx.cs的设计:
记得加上这个:
using BLL; using Model; |
而后才是:
protected void Page_Load( object sender, EventArgs e) { } protected void btnLogin_Click1( object sender, EventArgs e) { custom Custom = new custom(); customSystem CustomSystem = new customSystem(); Custom = CustomSystem.GetSinglename(txtUserName.Text.Trim().ToString()); if (Custom.ename == txtUserName.Text.Trim().ToString()) { // 密码是经过MD5加密后保存到数据库的 if (Custom.password == FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassWord.Text.Trim().ToString(), "MD5")) { department Department = new department(); departmentSystem DepartmentSystem = new departmentSystem(); Department = DepartmentSystem.Getsingledepartment(Custom.departID); SetSession(Department,Custom.departID.ToString()); } else { Response.Write( "<script>alert('密码错误');location.href='Login.aspx';</script>" ); } } else { Response.Write( "<script>alert('帐户名不存在');location.href='Login.aspx';</script>" ); } } private void SetSession(department Department, string DepartID) { if (Department == null || string .IsNullOrEmpty(DepartID)) { Response.Write( "<script>alert('网站运行错误或你没设置部门信息,请联系管理员.');location.href='Login.aspx';</script>" ); return ; } Session[ "Ename" ] = txtUserName.Text.Trim().ToString(); Session[ "Departid" ] = DepartID; Session[ "Operater" ] = "" ; if (Department.departname == "控制中心" ) { Response.Write( "<script>alert('登录成功');location.href='Default.aspx';</script>" ); } else { Response.Write( "<script>alert('登录成功');location.href='Default2.aspx';</script>" ); } } |
接下来我们要在App_Code文件下新建PageBase.cs
public bool IsAdmin() { if (Session[ "Departid" ] != null ) { department Department = new department(); departmentSystem DepartmentSystem = new departmentSystem(); Department = DepartmentSystem.Getsingledepartment( int .Parse(Session[ "Departid" ].ToString())); if (Department.departname != "控制中心" ) { Response.Redirect( "/Web/Login.aspx" ); Response.End(); return false ; } } else { Response.Redirect( "/Web/Login.aspx" ); Response.End(); return false ; } return true ; } |
加入下面之个方法:
再来看下ADDdepart.aspx的设计:
<table> <tr> <td style= "width: 100px" > 部门名称:</td> <td style= "width: 100px" > <asp:TextBox ID= "txtDepartmentName" runat= "server" ></asp:TextBox></td> </tr> <tr> <td style= "width: 100px" > 描述:</td> <td style= "width: 100px" > <asp:TextBox ID= "txtDescription" runat= "server" ></asp:TextBox></td> </tr> <tr> <td style= "width: 100px" > </td> <td style= "width: 100px" > <asp:Button ID= "btnAdd" runat= "server" OnClick= "btnAdd_Click" Text= "增加" /></td> </tr> </table> |
ADDdepart.aspx.cs的设计:
//继承PageBase类public partial class ADDdepart : PageBase { protected void Page_Load( object sender, EventArgs e) { if (!Page.IsPostBack) { IsAdmin(); } } protected void btnAdd_Click( object sender, EventArgs e) { department Department = new department(); department Departmenter = new department(); departmentSystem DepartmentSystem = new departmentSystem(); Department.departname = txtDepartmentName.Text.Trim(); Department.description = txtDescription.Text.Trim(); Departmenter = DepartmentSystem.Getdepartmenter(txtDepartmentName.Text.Trim()); if (Departmenter.id <= 0) { if (DepartmentSystem.Adddepartment(Department) >= 1) { ClientScript.RegisterClientScriptBlock( this .GetType(), "" , "<script>alert('恭喜您,部门添加成功!');</script>" ); } } else { ClientScript.RegisterClientScriptBlock( this .GetType(), "" , "<script>alert('您填的部门己存在,请更改!');</script>" ); } } } |
再来看下注册页面Register.aspx的设计:
<table> <tr> <td style= "width: 100px; text-align: right" > 帐户名:</td> <td style= "width: 100px" > <asp:TextBox ID= "txtUserName" runat= "server" ></asp:TextBox></td> <td style= "width: 100px" > </td> </tr> <tr> <td style= "width: 100px; text-align: right;" > 姓名:</td> <td style= "width: 100px" > <asp:TextBox ID= "txtName" runat= "server" ></asp:TextBox></td> <td style= "width: 100px" > </td> </tr> <tr> <td style= "width: 100px; text-align: right;" > 年龄:</td> <td style= "width: 100px" > <asp:TextBox ID= "txtAge" runat= "server" ></asp:TextBox></td> <td style= "width: 100px" > </td> </tr> <tr> <td style= "width: 100px; text-align: right;" > 密码:</td> <td style= "width: 100px" > <asp:TextBox ID= "txtPassWord" runat= "server" TextMode= "Password" ></asp:TextBox></td> <td style= "width: 100px" > <asp:CompareValidator ID= "CompareValidator1" runat= "server" ControlToCompare= "TextBox4" ControlToValidate= "TextBox5" ErrorMessage= "密码不一样" ></asp:CompareValidator></td> </tr> <tr> <td style= "width: 100px; text-align: right;" > 重复密码:</td> <td style= "width: 100px" > <asp:TextBox ID= "txtConfirmPassWord" runat= "server" TextMode= "Password" ></asp:TextBox></td> <td style= "width: 100px" > </td> </tr> <tr> <td style= "width: 100px; text-align: right;" > 部门:</td> <td style= "width: 100px" > <asp:DropDownList ID= "ddlDepartment" runat= "server" > </asp:DropDownList></td> <td style= "width: 100px" > </td> </tr> <tr> <td style= "width: 100px" > </td> <td style= "width: 100px" > <asp:Button ID= "btnLogin" runat= "server" OnClick= "btnLogin_Click" Text= "注册" /></td> <td style= "width: 100px" > </td> </tr> </table> |
下面是Register.aspx.cs的设计:
protected void Page_Load( object sender, EventArgs e) { if (!IsPostBack) { BinData(); } } public void BinData() { List<department> Departmentlist = new List<department>(); departmentSystem DepartmentSystem = new departmentSystem(); Departmentlist = DepartmentSystem.GetDepartment(); ddlDepartment.DataSource = Departmentlist; ddlDepartment.DataTextField = "departname" ; ddlDepartment.DataValueField = "id" ; ddlDepartment.DataBind(); } protected void btnLogin_Click( object sender, EventArgs e) { custom Custom = new custom(); customSystem CustomSystem = new customSystem(); custom Customn = new custom(); Customn = CustomSystem.GetSinglename(txtUserName.Text.Trim()); if (Customn.id <= 0) { Custom.ename = txtUserName.Text.Trim(); Custom.cname = txtName.Text.Trim(); Custom.age = Convert.ToInt32(txtAge.Text.Trim()); Custom.password = FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassWord.Text.Trim(), "MD5" ); Custom.departID = int .Parse(ddlDepartment.SelectedValue); if (CustomSystem.customADD(Custom) >= 1) { ClientScript.RegisterClientScriptBlock( this .GetType(), "" , "<script>alert('恭喜您,帐号添加成功!');</script>" ); } } else { ClientScript.RegisterClientScriptBlock( this .GetType(), "" , "<script>alert('你输入的帐户名己存在,请更改!');</script>" ); } } |
以上只是UI简单的调用BLL的功能,下次再讲解下GridView调用BLL和GridView的分页,可能我设计的只是较简单,欢迎大家提出你们宝贵的意见.来共同提高.欢迎拍砖.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架