步步为营 .NET三层架构解析 七、UI的设计(登陆页面、注册页页和添加部门页面)
2011-03-27 23:29 by spring yang, 2305 visits, 网摘, 收藏, 编辑在我们设计好了三层架构的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的分页,可能我设计的只是较简单,欢迎大家提出你们宝贵的意见.来共同提高.欢迎拍砖.