留言板模块教学设计.docx

上传人:b****7 文档编号:10595394 上传时间:2023-02-21 格式:DOCX 页数:24 大小:1.62MB
下载 相关 举报
留言板模块教学设计.docx_第1页
第1页 / 共24页
留言板模块教学设计.docx_第2页
第2页 / 共24页
留言板模块教学设计.docx_第3页
第3页 / 共24页
留言板模块教学设计.docx_第4页
第4页 / 共24页
留言板模块教学设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

留言板模块教学设计.docx

《留言板模块教学设计.docx》由会员分享,可在线阅读,更多相关《留言板模块教学设计.docx(24页珍藏版)》请在冰豆网上搜索。

留言板模块教学设计.docx

留言板模块教学设计

留言板系统

一、系统分析

(一)需求分析

1.要求系统具有良好的人机界面

2.能够满足用户的留言要求

3.能够让访客在查看留言内容后,对留言的内容发表自己的意见

4.管理员能够实现对留言的回复及删除操作

5.网站最大限度地实现易维护和易操作性

6.网站运行稳定、安全可靠

(二)可行性分析

留言板是Internet上最常见的一种服务,也是最典型的交互式网页。

通常上网者可以使用访客留言板张贴一些文章,或是通过留言板给网站的维护者留下一些意见和看法,留言板也可以作为网友之间互通信息、相互交流的渠道。

本系统后台数据库采用MicrosoftSQLServer2005,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大、效率高;前台采用Microsoft公司的VisualStudio2005作为主要的开发工具,其可与SQLServer2005数据库无缝连接。

二、系统设计

(一)设计目标

1.界面设计美观友好,使用灵活便捷

2.数据存储安全可靠

3.提供留言查看、留言发表、留言回复、留言删除功能

4.系统最大限度地实现易维护和易操作性

5.系统运行稳定、安全可靠

(二)开发及运行环境

系统开发平台:

MicrosoftVisualStudio2005

系统开发语言:

C#

系统后台数据库:

MicrosoftSQLServer2005

运行平台:

WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2003(SP1)

运行环境:

Microsoft.NETFrameworkSDKv2.0

分辨率:

最佳效果为1024×768像素

(三)数据库设计

本系统采用了SQLServer2005数据库,可以用来执行各种操作,更新数据库中的数据、从数据库中提取数据等。

数据库名称为db_LeaveWordBook,使用3个数据表,分别是用户信息表(tb_User)、留言表(tb_LeaveWord)、和回复表(tb_Reply)。

各数据表的结构如下:

Øtb_User(用户信息表)

用户信息表(tb_User)结构

字段

类型

长度

是否可为空

说明

ID

int

4

主键(自动编号)

Uid

nvarchar

20

用户姓名

Sex

nvarchar

2

性别

Website

nvarchar

50

主页

Email

nvarchar

30

E-mail

QQ

nvarchar

20

QQ

IP

nvarchar

20

IP地址

Popedom

int

4

权限

Øtb_LeaveWord(留言表)

留言表(tb_LeaveWord)结构

字段

类型

长度

是否可为空

说明

ID

int

4

主键(自动编号)

Uid

nvarchar

20

留言人姓名

Subject

nvarchar

50

留言主题

Content

ntext

16

留言内容

DateTime

datetime

8

留言时间

IP

nvarchar

20

IP地址

Øtb_Reply(回复表)

回复表(tb_Reply)结构

字段

类型

长度

是否可为空

说明

ID

int

4

主键(自动编号)

Uname

nvarchar

20

回复人姓名

Content

ntext

16

回复内容

DateTime

datetime

8

回复时间

ReplyID

int

4

回复ID

IP

nvarchar

20

IP地址

三、系统开发

(一)首页设计

index.aspx是留言板首页,效果如下:

1.功能描述

留言板首页主要是将数据库中检索到的留言主题信息显示出来,用户可在界面左侧选择“查看主题”、“发表留言”、“用户注册”、“我的留言”、“留言管理”相应的主题后,在界面的右侧将显示相应的界面。

2.关键技术:

本模块实现将数据动态添加到table表格中。

首页index.aspx的主要部分是用户控件ShowSubject.ascx,该控件将数据动态绑定到客户端控件table表格上。

此功能的实现是将前台中的一个单元格绑定GetList方法,此方法的主要功能是在该单元格中添加一个table表格,并将字段添加到动态生成的表格中。

3.功能实现

前台表格中使用到了GetList方法将数据绑定到表格中,主要用到数据库中的tb_LeaveWord表中的ID编号字段的值的不同,查找出tb_LeaveWord表中对应的Subject字段的值并显示出来。

实现步骤如下:

(1)创建Web窗体,命名为index.aspx。

(2)用户首页页面中使用的主要控件表如下:

控件类型

控件名称

数量

用途

HTML

Table

1

布局页面

UserControl

ShowSubject

1

显示主题

(3)主要代码:

publicstringGetList()

{

SqlDatada=newSqlData();

SqlDataReaderdr=da.ExceRead("select*fromtb_LeaveWord");

stringstrBody="";

while(dr.Read())//循环读取

{

strBody+="·

ID="+dr["ID"]+">"+dr["Subject"].ToString()+"\n";

}

dr.Close();//关闭阅读器

strBody+="";

returnstrBody;

}

(二)发表留言

ReleaseWord.aspx用于用户发表留言信息,效果如下:

1.功能描述

本系统中,浏览者发表留言必须先进行注册,通过“用户注册”模块注册完成后,即可登录到系统中,单击导航栏中“发表留言”项,可发表留言信息。

2.关键技术

该页面中主要使用FreetextBox组件,该组件是一个在线文本编辑器,可以对文字以及图片内容进行处理,并将数据保存到数据库中。

该组件配置步骤如下:

(1)将FreetextBox.dll添加到项目中。

在“解决方案资源管理器”中右键单击项目,选择快捷菜单中的“添加引用”选项,在弹出的对话框中选择“浏览”选项卡,找到组件存放位置,单击“确定”按钮,系统将自动创建Bin文件夹,并将组件存放到该文件夹中,如下所示:

(2)设置SupportFolder属性,将存放有FreetextBox组件的文件夹存放到aspnet_client文件夹中,然后设置SupportFolder属性为“aspnet_client/FreeTextBook/”。

(3)向页面中添加组件。

配置完成后,即可向页面中的位置添加组件。

在向页面中添加组件前,先注册组件。

在页面HTML源代码顶部添加注册代码如下:

<%@RegisterTagPrefix="FTB"Namespace="FreeTextBoxControls"Assembly="FreeTextBox"%>

在页面中适当的位置再添加FreetextBox组件,代码如下:

FreeTextBoxid="FreeTextBox1"runat="Server"SupportFolder="aspnet_client/FreeTextBox/"ButtonSet="Office2003"Height="120px"Width="365px"ImageGalleryPath="../../images/"Language="zh-cn"/>

(4)写入数据库。

完成以上配置后,就可以使用该组件向数据库插入数据。

3.功能实现

主要步骤如下:

(1)创建Web窗体,命名为ReleaseWord.aspx。

(2)发表留言页面中使用的主要控件如表:

控件类型

控件名称

数量

用途

HTML

Table

1

布局页面

HTML

Input(Reset)

2

重置/返回

标准

Button

1

提交

标准

Textbox

1

填写留言主题

标准

FreeTextBox

1

填写留言内容

(3)主要代码:

protectedvoidbtnOK_Click(objectsender,EventArgse)

{

SqlDatada=newSqlData();

stringcmdtxt="INSERTINTOtb_LeaveWord(Uid,Subject,Content,DateTime,IP)";

cmdtxt+="VALUES('"+Session["UserName"].ToString()+"','"+this.TextBox1.Text+"'";

cmdtxt+=",'"+this.FreeTextBox1.Text+"','"+DateTime.Now+"'";

cmdtxt+=",'"+Request.UserHostAddress+"')";

booladd=da.ExceSQL(cmdtxt);

if(add==true)

{

Response.Write("alert('添加成功!

');location='Index.aspx'");

}

else

{

Response.Write("alert('添加失败!

');location='javascript:

history.go(-1)'");

}

}

(三)查看留言

ShowWord.aspx用于查看留言信息,效果如下:

1.功能描述

用户在首页选择相应的主题后,即可进入ShowWord.aspx查看详细内容。

在开发本系统时,需要在页面中比较全面的显示一些信息,但如果要显示的信息记录较多,此时用一个页面显示所有的记录,可能给用户的浏览带来不便,为了解决这个问题,开发人员可以使用分页技术来限定一个页面中显示的记录数。

本系统在留言板中,通过DataList控件绑定数据,分页显示该系统中的留言信息。

2.关键技术

(1)本系统通过DataList控件绑定数据,分页显示该系统中留言信息的关键代码如下:

PagedDataSourceps=newPagedDataSource();

ps.AllowPaging=true;//是否可以分页

ps.PageSize=3;//显示的数量

ps.CurrentPageIndex=curpage-1;//取得当前页的页码

this.DataList1.DataSource=ps;

(2)本系统是通过母版来实现的,因此在布局页面时,只需要布局母版页的内容即。

使用ASP.NET母版页可以为应用程序中的页创建一致的布局。

单个母版页可以为应用程序中的所有页定义所需的外观和标准行为。

可以创建包含要显示内容的各个内容页。

当用户请求内容页时,这些内容页与母版页合并,然后将母版页的布局与内容页组合在一起输出。

3.功能实现

此功能的实现主要用到数据库中的tb_LeaveWord表和tb_Reply表。

本模块根据传入的编号值来查找tb_LeaveWord中的信息,给声明的变量赋值,并绑定一个自定义方法dlBind方法,该方法实现分页的功能,方便查看。

主要实现步骤如下:

(1)创建Web窗体,命名为LeaveWordView。

(2)留言信息查看页面中用到的主要控件如下表:

控件类型

控件名称

数量

用途

HTML

Table

6

布局页面

标准

Label

2

显示数据

标准

DataList

1

显示检索到的数据

标准

LinkButton

6

我要回复/查看回复/控制翻页

(3)主要代码:

由于在前台页面中绑定了几个变量,因此要在后台代码中首先声明这些全局变量,并将它们设为public类型,代码如下:

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Collections;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

usingSystem.Data.SqlClient;

publicpartialclassDefault2:

System.Web.UI.Page

{

publicstringShowSubject,ShowTime,ShowContent,ShowName;

//以下为其他事件和方法

…………

}

在Page_Load事件中,首先根据来自主页传递的值检索数据表中相关数据,再给声明的变量赋值,并绑定一个自定义方法dlBind方法,代码如下:

protectedvoidPage_Load(objectsender,EventArgse)

{

stringcmdtxt="SELECT*FROMtb_LeaveWordWHEREID='"+Request["ID"].ToString()+"'";

SqlConnectionCon=newSqlConnection(ConfigurationManager.AppSettings["ConSql"]);

Con.Open();

SqlCommandCom=newSqlCommand(cmdtxt,Con);

SqlDataReaderdr=Com.ExecuteReader();

dr.Read();

if(dr.HasRows)

{

ShowSubject=dr["Subject"].ToString();

ShowTime=dr["DateTime"].ToString();

ShowContent=dr["Content"].ToString();

ShowName=dr["Uid"].ToString();

}

dr.Close();//关闭阅读器

this.dlBind();//调用dlBind方法

}

页面中最关键的是dlBind方法的使用,该方法中实现了DataList控件分页技术,代码如下:

publicvoiddlBind()

{

intcurpage=Convert.ToInt32(labNowPage.Text);

PagedDataSourceps=newPagedDataSource();

SqlConnectionmycon=newSqlConnection(ConfigurationManager.AppSettings["ConSql"]);

mycon.Open();

stringcmdtxt1="SELECT*FROMtb_ReplyWHEREReplyID="+Request["ID"].ToString()+"";

SqlDataAdapterMyAdapter=newSqlDataAdapter(cmdtxt1,mycon);

DataSetds=newDataSet();

MyAdapter.Fill(ds,"tb_Reply");

ps.DataSource=ds.Tables["tb_Reply"].DefaultView;

ps.AllowPaging=true;//是否可以分页

ps.PageSize=3;//显示的数量

ps.CurrentPageIndex=curpage-1;//取得当前页的页码

lnkbtnPrve.Enabled=true;

lnkbtnTop.Enabled=true;

lnkbtnNext.Enabled=true;

lnkbtnLast.Enabled=true;

if(curpage==1)

{

lnkbtnTop.Enabled=false;//不显示第一页按钮

lnkbtnPrve.Enabled=false;//不显示上一页按钮

}

if(curpage==ps.PageCount)

{

lnkbtnNext.Enabled=false;//不显示下一页

lnkbtnLast.Enabled=false;//不显示最后一页

}

this.labCount.Text=Convert.ToString(ps.PageCount);

this.DataList1.DataSource=ps;

this.DataList1.DataKeyField="ID";

this.DataList1.DataBind();

}

控制DataList翻页主要使用LinkButton控件,实现分页功能的代码如下:

protectedvoidlnkbtnTop_Click(objectsender,EventArgse)

{

this.labNowPage.Text="1";

this.dlBind();

}

protectedvoidlnkbtnPrve_Click(objectsender,EventArgse)

{

this.labNowPage.Text=Convert.ToString(Convert.ToInt32(this.labNowPage.Text)-1);

this.dlBind();

}

protectedvoidlnkbtnNext_Click(objectsender,EventArgse)

{

this.labNowPage.Text=Convert.ToString(Convert.ToInt32(this.labNowPage.Text)+1);

this.dlBind();

}

protectedvoidlnkbtnLast_Click(objectsender,EventArgse)

{

this.labNowPage.Text=this.labCount.Text;

this.dlBind();

}

(四)管理留言

LeaveWordManage.aspx用于管理留言,效果如下:

1.功能描述

单击导航栏中的“留言管理”项,进入到登录页面,该页面是管理员用户登录系统的入口。

管理员登录成功后,即可进入留言信息管理页面,该页面显示所有注册用户的留言信息,并可以对留言信息进行查看、回复和删除。

2.关键技术

(1)本模块需要实现把数据显示到DataList控件中,使用到DataList控件的绑定技术。

DataList控件提供了DataKeys属性。

该属性用于获取存储数据列表控件中每个记录的键值。

(2)本系统主要用到了session对象,目的是为了用session对象判断用户登录状态,如果程序没有判断用户登录状态,那么用户登录毫无意义,非法用户便可通过地址栏访问任一网页;如果判断其登录状态,非法用户则不可通过地址栏非法访问网站后台,并且将网页重新定向到网站登录页面。

3.功能实现

本模块需要实现数据显示到DataList控件中,使用到了DataList控件的绑定技术。

此功能的实现用到数据库中的tb_LeaveWord表,通过传过来tb_LeaveWord表中ID字段的值的应用,对该记录进行操作完成“回复留言”、“查看留言”、“删除留言”功能的实现。

由于前台页面中绑定的是变量,为了使数据能够正常显示,首先要声明几个全局变量,代码如下:

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Collections;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

usingSystem.Data.SqlClient;

publicpartialclassDefault2:

System.Web.UI.Page

{

publicstringShowSubject,ShowTime,ShowContent;//声明的变量

//以下为其他事件和方法

…………

在Page_Load事件中,首先判断用户是否登录,若未登录,则返回到登录页面;反之,进入管理页面并将数据绑定到DataList控件,代码如下:

protectedvoidPage_Load(objectsender,EventArgse)

{

if(Session["UserName"]==null)

{

Response.Redirect("Login.aspx");

}

this.dlBind();

}

该页面中具有删除留言功能,主要是通过DataList控件中的LinkButton控件实现。

将LinkButton按钮的CommandName属性值设为delete,然后DataList控件的DeleteCommand事件中编写代码完成删除功能,代码如下:

protectedvoidDataList1_DeleteCommand(objectsource,DataListCommandEventArgse)

{

stringstrid=this.DataList1.DataKeys[e.Item.ItemIndex].ToString();//获取当前DataList控件列

stringcom

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1