步步为营 .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的分页,可能我设计的只是较简单,欢迎大家提出你们宝贵的意见.来共同提高.欢迎拍砖.