4.详细设计 4.1 导航栏与登录模块 内容来自www.paper51.com 按用户的不同身份:一般用户和管理员,在一开始连接上网站即通过不同身份选择不同的登陆入口:一般用户登陆入口与管理员登陆入口。在用户登陆界面既可进行用户的登陆,同时也可点击注册按钮进入注册页面。管理员登陆成功后即可对网站进行管理。 内容来自论文无忧网 www.paper51.com (1)导航栏 copyright paper51.com 导航栏的设计主要是建立一个用户自定义控件Header.ascx。在Header.ascx中,先插入一张表,然后将连接到各模块主页面的超链接图片插入其中,完成自定义控件的建立。在每个需要加入它的页面首先进行注册,然后在<from>中进行调用即可。如: paper51.com <%@RegisterTagPrefix="uc1" TagName="header" http://www.paper51.com Src="~/selfcontrol/header.ascx"@%> paper51.com
<from><uc1:headerid="header1"runat="server"></uc1:header></from> 内容来自www.paper51.com (2)登录页面 paper51.com 登陆页面主要控件为用户登陆按钮Button1,点击后在后台执行代码,首先声明一UsersDB的对象,调用UsersDB的UserLogin()函数,UserLogin()函数再调用存储过程Checkuser执行用户名和密码检验,UserLogin()返回一个串值,如果用户名与密码正确则返回用户名,否则返回空串。控件代码如下: copyright paper51.com privatevoid Button1_Click(object sender, System.EventArgs e) copyright paper51.com
{ 内容来自论文无忧网 www.paper51.com
UsersDBuser = new UsersDB(); paper51.com stringusername = user.UserLogin(TextBox1.Text,TextBox2.Text); 内容来自论文无忧网 www.paper51.com if(username.Length==0) http://www.paper51.com
{ 内容来自www.paper51.com Label1.Visible=true; copyright paper51.com
TextBox1.Text=""; http://www.paper51.com TextBox2.Text=""; http://www.paper51.com
} paper51.com else 内容来自论文无忧网 www.paper51.com { paper51.com Session["UserName"]= TextBox2.Text; paper51.com Response.Redirect("~/bbs/ShowThread.aspx"); copyright paper51.com } copyright paper51.com
} 内容来自论文无忧网 www.paper51.com 调用UserLogin()函数代码如下: 内容来自www.paper51.com public string UserLogin(string Name,string Password) http://www.paper51.com { 内容来自论文无忧网 www.paper51.com //创建一个数据库连接实例和命令对象。 paper51.com
SqlConnection myConnection = newSqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]); http://www.paper51.com
SqlCommand myCommand = newSqlCommand("Checkuser", myConnection); 内容来自论文无忧网 www.paper51.com //把命令对象的命令类型设置为存储过程。 http://www.paper51.com
myCommand.CommandType= CommandType.StoredProcedure; 内容来自论文无忧网 www.paper51.com
SqlParameter parameterName = newSqlParameter("@UserName", SqlDbType.NVarChar,20); 内容来自论文无忧网 www.paper51.com parameterName.Value= Name; 内容来自www.paper51.com myCommand.Parameters.Add(parameterName); paper51.com SqlParameter parameterPassword =new SqlParameter("@Pass", SqlDbType.NVarChar,20); http://www.paper51.com parameterPassword.Value= Password; paper51.com myCommand.Parameters.Add(parameterPassword); paper51.com //执行命令。 paper51.com myConnection.Open(); paper51.com SqlDataReader reader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); copyright paper51.com if(reader.Read()) copyright paper51.com
returnName; copyright paper51.com else copyright paper51.com returnstring.Empty; 内容来自论文无忧网 www.paper51.com
} copyright paper51.com 4.2 论坛模块 paper51.com
用户登陆后进入论坛主页ShowThread.aspx。该页面主要设计目的是显示论坛所有的帖子,点击某一帖子进入该帖子对应的页面。并可以通过点击发表帖子控件进入发表帖子页面,将发表的帖子即时的显示在帖子主页上。页面设计如 http://www.paper51.com 图4-1所示。 内容来自www.paper51.com 此页面主要控件是myDataList控件,其它为显示控件或超级连接控件。后台首先通过Page_Load调用相关方法实现myDataList的数据绑定。绑定之前首先计算当前页面显示的总的帖子数,调用ThreadsDB中的CurrentPageThreads函数,同时对页面分页。 内容来自www.paper51.com 图4-1 论坛页面设计视图 paper51.com (1)Page_Load代码如下所示: copyright paper51.com private void Page_Load(object sender, System.EventArgs e) copyright paper51.com { 内容来自论文无忧网 www.paper51.com if(! this.IsPostBack) 内容来自www.paper51.com { 内容来自www.paper51.com intTotalPage; http://www.paper51.com intrecords; http://www.paper51.com intpage; 内容来自www.paper51.com
if(Request["page"] ==null) paper51.com
{ http://www.paper51.com page=1; paper51.com
} copyright paper51.com
else copyright paper51.com { 内容来自www.paper51.com
try paper51.com { 内容来自论文无忧网 www.paper51.com page= Convert.ToInt32(Request["page"]); 内容来自论文无忧网 www.paper51.com } 内容来自论文无忧网 www.paper51.com catch 内容来自论文无忧网 www.paper51.com { 内容来自论文无忧网 www.paper51.com page=1; 内容来自论文无忧网 www.paper51.com
} 内容来自www.paper51.com } 内容来自论文无忧网 www.paper51.com ThreadsDBthreads = new ThreadsDB(); http://www.paper51.com
DataSetds; 内容来自论文无忧网 www.paper51.com ds= threads.CurrentPageThreads(page,12,out TotalPage,out records); 内容来自论文无忧网 www.paper51.com
lblPage.Text = lblPage2.Text = page + "/"+TotalPage; 内容来自www.paper51.com lblRecord.Text= lblRecord2.Text = records.ToString() http://www.paper51.com stringsUrl = Request.Url.ToString(); copyright paper51.com intstart = sUrl.LastIndexOf("&page"); http://www.paper51.com if(start != -1) paper51.com
sUrl= sUrl.Remove(start,sUrl.Length - start); copyright paper51.com if(page<=1) 内容来自www.paper51.com { 内容来自www.paper51.com hlPrev.NavigateUrl=sUrl+"&page=1"; http://www.paper51.com hlPrev2.NavigateUrl=sUrl+"&page=1"; paper51.com } http://www.paper51.com else paper51.com { 内容来自论文无忧网 www.paper51.com
hlPrev.NavigateUrl= sUrl+"&page=" + (page-1) ; http://www.paper51.com hlPrev2.NavigateUrl= sUrl+"&page=" + (page-1) ; 内容来自论文无忧网 www.paper51.com } paper51.com if(page < TotalPage) paper51.com
{ http://www.paper51.com hlNext.NavigateUrl=sUrl+"&page=" + (page+1); 内容来自论文无忧网 www.paper51.com
hlNext2.NavigateUrl=sUrl+"&page=" + (page+1); paper51.com
} 内容来自论文无忧网 www.paper51.com else http://www.paper51.com
{ http://www.paper51.com hlNext.NavigateUrl=sUrl+"&page=" +page; 内容来自www.paper51.com hlNext2.NavigateUrl=sUrl+"&page=" +page; 内容来自www.paper51.com } copyright paper51.com myDataList.DataSource= ds; paper51.com myDataList.DataBind(); 内容来自论文无忧网 www.paper51.com
} http://www.paper51.com
} copyright paper51.com |