留言板模块教学设计.docx
- 文档编号:10343129
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:21
- 大小:24.90KB
留言板模块教学设计.docx
《留言板模块教学设计.docx》由会员分享,可在线阅读,更多相关《留言板模块教学设计.docx(21页珍藏版)》请在冰点文库上搜索。
留言板模块教学设计
留言板系统
一、系统分析
(一)需求分析
1.要求系统具有良好的人机界面
2.能够知足用户的留言要求
3.能够让访客在查看留言内容后,对留言的内容发表自己的意见
4.管理员能够实现对留言的回答及删除操作
5.网站最大限度地实现易保护和易操作性
6.网站运行稳定、安全靠得住
(二)可行性分析
留言板是Internet上最多见的一种服务,也是最典型的交互式网页。
通常上网者可利用访客留言板张贴一些文章,或是通过留言板给网站的保护者留下一些意见和观点,留言板也可以作为网友之间互通信息、彼此交流的渠道。
本系统后台数据库采用MicrosoftSQLServer2021,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,而且处置数据量大、效率高;前台采用Microsoft公司的VisualStudio2021作为主要的开发工具,其可与SQLServer2021数据库无缝连接。
二、系统设计
(一)设计目标
1.界面设计美观友好,利用灵活便捷
2.数据存储安全靠得住
3.提供留言查看、留言发表、留言回答、留言删除功能
4.系统最大限度地实现易保护和易操作性
5.系统运行稳定、安全靠得住
(二)开发及运行环境
系统开发平台:
MicrosoftVisualStudio2021
系统开发语言:
C#
系统后台数据库:
MicrosoftSQLServer2021
运行平台:
WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2021(SP1)
运行环境:
Microsoft.NETFrameworkSDKv2.0
分辨率:
最佳效果为1024×768像素
(三)数据库设计
本系统采用了SQLServer2021数据库,可以用来执行各类操作,更新数据库中的数据、从数据库中提取数据等。
数据库名称为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
是
主页
nvarchar
30
是
nvarchar
20
是
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()+"
}
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="Office2021"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()+"','"++"'"; cmdtxt+=",'"+"','"+DateTime.Now+"'"; cmdtxt+=",'"+Request.UserHostAddress+"')"; booladd=da.ExceSQL(cmdtxt); if(add==true) { Response.Write(" ');location='Index.aspx'"); } else { Response.Write(" ');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;//取适当前页的页码 =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; using; using; using; using; using; using; publicpartialclassDefault2: { 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;//不显示最后一页 } =Convert.ToString(ps.PageCount); =ps; ="ID"; ; } 控制DataList翻页主要利用LinkButton控件,实现分页功能的代码如下: protectedvoidlnkbtnTop_Click(objectsender,EventArgse) { ="1"; this.dlBind(); } protectedvoidlnkbtnPrve_Click(objectsender,EventArgse) { =Convert.ToString(Convert.ToInt32(-1); this.dlBind(); } protectedvoidlnkbtnNext_Click(objectsender,EventArgse) { =Convert.ToString(Convert.ToInt32(+1); this.dlBind(); } protectedvoidlnkbtnLast_Click(objectsender,EventArgse) { =; 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; using; using; using; using; using; using; publicpartialclassDefault2: { 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=;//获取当前DataList控件列 stringcom="Deletefromtb_LeaveWordwhereID='"+Convert.ToInt32(strid)+"'"; SqlDatada=newSqlData(); da.ExceSQL(com); "LeaveWordManage.aspx"); } (五)回答留言 LeaveWordBack.aspx是回答留言页面,显示效果如下: 1.功能描述 回答留言模块的主要功能是对留言人的留言进行回答,方便交流沟通。 回答留言模块通过留言信息管理模块中传递过来的值,从留言表中检索出相应的ID和留言主题,并将留言主题绑定到控件中。 2.关键技术 在与数据库的交互中,要取得数据访问的结果可以通过DataReader对象从数据源中获取数据并进行处置。 DataReader是一个DBMS所特有的,常常利用来检索大量数据。 DataReader在一个接一个地查看查询结果的记录时利用。 而且,DataReader是查询结果的一种只进、只读的视图。 本系统利用DataReader对象保留信息的代码如下: SqlDataReaderdr=Com.ExecuteReader(); dr.Read(); if(dr.HasRows) { =dr["Subject"].ToString(); } dr.Close(); 3.功能实现 本模块按照传来的编号值来查找tb_LeaveWord中的信息,实现将数据绑定到控件中的功能,用户把信息输入到文本框中,通过“提交”按钮完成向数据库提交数据的操作。 回答留言是留言板中关键的一项,主要实现步骤如下: (1)创建Web窗体,命名LeaveWordBack.aspx。 (2)回答留言页面中利用的主要控件如下表: 控件类型 控件名称 数量 用途 HTML Table
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 留言板 模块 教学 设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)