留言板模块教学设计Word文档格式.docx
《留言板模块教学设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《留言板模块教学设计Word文档格式.docx(21页珍藏版)》请在冰点文库上搜索。
数据库名称为db_LeaveWordBook,使用3个数据表,分别是用户信息表(tb_User)、留言表(tb_LeaveWord)、和回复表(tb_Reply)。
各数据表的结构如下:
Ø
tb_User(用户信息表)
用户信息表(tb_User)结构
字段
类型
长度
是否可为空
说明
ID
int
4
否
主键(自动编号)
Uid
nvarchar
20
用户姓名
Sex
2
性别
Website
50
是
主页
Email
30
E-mail
QQ
IP
IP地址
Popedom
权限
tb_LeaveWord(留言表)
留言表(tb_LeaveWord)结构
留言人姓名
Subject
留言主题
Content
ntext
16
留言内容
DateTime
datetime
8
留言时间
tb_Reply(回复表)
回复表(tb_Reply)结构
Uname
回复人姓名
回复内容
回复时间
ReplyID
回复ID
三、系统开发
(一)首页设计
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
显示主题
(3)主要代码:
publicstringGetList()
{
SqlDatada=newSqlData();
SqlDataReaderdr=da.ExceRead("
select*fromtb_LeaveWord"
);
stringstrBody="
<
tablewidth=150>
"
;
while(dr.Read())//循环读取
strBody+="
tr>
tdclass=tableBottom>
·
ahref=ShowWord.aspx?
ID="
+dr["
ID"
]+"
>
Subject"
].ToString()+"
/a>
/td>
/tr>
\n"
}
dr.Close();
//关闭阅读器
/table>
returnstrBody;
(二)发表留言
ReleaseWord.aspx用于用户发表留言信息,效果如下:
本系统中,浏览者发表留言必须先进行注册,通过“用户注册”模块注册完成后,即可登录到系统中,单击导航栏中“发表留言”项,可发表留言信息。
2.关键技术
该页面中主要使用FreetextBox组件,该组件是一个在线文本编辑器,可以对文字以及图片内容进行处理,并将数据保存到数据库中。
该组件配置步骤如下:
(1)将FreetextBox.dll添加到项目中。
在“解决方案资源管理器”中右键单击项目,选择快捷菜单中的“添加引用”选项,在弹出的对话框中选择“浏览”选项卡,找到组件存放位置,单击“确定”按钮,系统将自动创建Bin文件夹,并将组件存放到该文件夹中,如下所示:
(2)设置SupportFolder属性,将存放有FreetextBox组件的文件夹存放到aspnet_client文件夹中,然后设置SupportFolder属性为“aspnet_client/FreeTextBook/”。
(3)向页面中添加组件。
配置完成后,即可向页面中的位置添加组件。
在向页面中添加组件前,先注册组件。
在页面HTML源代码顶部添加注册代码如下:
%@RegisterTagPrefix="
FTB"
Namespace="
FreeTextBoxControls"
Assembly="
FreeTextBox"
%>
在页面中适当的位置再添加FreetextBox组件,代码如下:
FTB:
FreeTextBoxid="
FreeTextBox1"
runat="
Server"
SupportFolder="
aspnet_client/FreeTextBox/"
ButtonSet="
Office2003"
Height="
120px"
Width="
365px"
ImageGalleryPath="
../../images/"
Language="
zh-cn"
/>
(4)写入数据库。
完成以上配置后,就可以使用该组件向数据库插入数据。
主要步骤如下:
(1)创建Web窗体,命名为ReleaseWord.aspx。
(2)发表留言页面中使用的主要控件如表:
Input(Reset)
重置/返回
标准
Button
提交
Textbox
填写留言主题
FreeTextBox
填写留言内容
protectedvoidbtnOK_Click(objectsender,EventArgse)
stringcmdtxt="
INSERTINTOtb_LeaveWord(Uid,Subject,Content,DateTime,IP)"
cmdtxt+="
VALUES('
+Session["
UserName"
].ToString()+"
'
'
++"
+"
+DateTime.Now+"
+Request.UserHostAddress+"
)"
booladd=da.ExceSQL(cmdtxt);
if(add==true)
Response.Write("
scriptlanguage=javascript>
alert('
添加成功!
location='
Index.aspx'
/script>
else
添加失败!
javascript:
history.go(-1)'
(三)查看留言
ShowWord.aspx用于查看留言信息,效果如下:
用户在首页选择相应的主题后,即可进入ShowWord.aspx查看详细内容。
在开发本系统时,需要在页面中比较全面的显示一些信息,但如果要显示的信息记录较多,此时用一个页面显示所有的记录,可能给用户的浏览带来不便,为了解决这个问题,开发人员可以使用分页技术来限定一个页面中显示的记录数。
本系统在留言板中,通过DataList控件绑定数据,分页显示该系统中的留言信息。
(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)留言信息查看页面中用到的主要控件如下表:
6
Label
显示数据
DataList
显示检索到的数据
LinkButton
我要回复/查看回复/控制翻页
由于在前台页面中绑定了几个变量,因此要在后台代码中首先声明这些全局变量,并将它们设为public类型,代码如下:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
using;
publicpartialclassDefault2:
{
publicstringShowSubject,ShowTime,ShowContent,ShowName;
//以下为其他事件和方法
…………
}
在Page_Load事件中,首先根据来自主页传递的值检索数据表中相关数据,再给声明的变量赋值,并绑定一个自定义方法dlBind方法,代码如下:
protectedvoidPage_Load(objectsender,EventArgse)
SELECT*FROMtb_LeaveWordWHEREID='
+Request["
].ToString()+"
SqlConnectionCon=newSqlConnection(ConfigurationManager.AppSettings["
ConSql"
]);
Con.Open();
SqlCommandCom=newSqlCommand(cmdtxt,Con);
SqlDataReaderdr=Com.ExecuteReader();
dr.Read();
if(dr.HasRows)
ShowSubject=dr["
].ToString();
ShowTime=dr["
DateTime"
ShowContent=dr["
Content"
ShowName=dr["
Uid"
this.dlBind();
//调用dlBind方法
页面中最关键的是dlBind方法的使用,该方法中实现了DataList控件分页技术,代码如下:
publicvoiddlBind()
intcurpage=Convert.ToInt32(labNowPage.Text);
SqlConnectionmycon=newSqlConnection(ConfigurationManager.AppSettings["
mycon.Open();
stringcmdtxt1="
SELECT*FROMtb_ReplyWHEREReplyID="
+Request["
SqlDataAdapterMyAdapter=newSqlDataAdapter(cmdtxt1,mycon);
DataSetds=newDataSet();
MyAdapter.Fill(ds,"
tb_Reply"
ps.DataSource=ds.Tables["
].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);
="
控制DataList翻页主要使用LinkButton控件,实现分页功能的代码如下:
protectedvoidlnkbtnTop_Click(objectsender,EventArgse)
1"
protectedvoidlnkbtnPrve_Click(objectsender,EventArgse)
=Convert.ToString(Convert.ToInt32(-1);
protectedvoidlnkbtnNext_Click(objectsender,EventArgse)
=Convert.ToString(Convert.ToInt32(+1);
protectedvoidlnkbtnLast_Click(objectsender,EventArgse)
=;
(四)管理留言
LeaveWordManage.aspx用于管理留言,效果如下:
单击导航栏中的“留言管理”项,进入到登录页面,该页面是管理员用户登录系统的入口。
管理员登录成功后,即可进入留言信息管理页面,该页面显示所有注册用户的留言信息,并可以对留言信息进行查看、回复和删除。
(1)本模块需要实现把数据显示到DataList控件中,使用到DataList控件的绑定技术。
DataList控件提供了DataKeys属性。
该属性用于获取存储数据列表控件中每个记录的键值。
(2)本系统主要用到了session对象,目的是为了用session对象判断用户登录状态,如果程序没有判断用户登录状态,那么用户登录毫无意义,非法用户便可通过地址栏访问任一网页;
如果判断其登录状态,非法用户则不可通过地址栏非法访问网站后台,并且将网页重新定向到网站登录页面。
本模块需要实现数据显示到DataList控件中,使用到了DataList控件的绑定技术。
此功能的实现用到数据库中的tb_LeaveWord表,通过传过来tb_LeaveWord表中ID字段的值的应用,对该记录进行操作完成“回复留言”、“查看留言”、“删除留言”功能的实现。
由于前台页面中绑定的是变量,为了使数据能够正常显示,首先要声明几个全局变量,代码如下:
publicstringShowSubject,ShowTime,ShowContent;
//声明的变量
在Page_Load事件中,首先判断用户是否登录,若未登录,则返回到登录页面;
反之,进入管理页面并将数据绑定到DataList控件,代码如下:
if(Session["
]==null)
Response.Redirect("
Login.aspx"
该页面中具有删除留言功能,主要是通过DataList控件中的LinkButton控件实现。
将LinkButton按钮的CommandName属性值设为delete,然后DataList控件的DeleteCommand事件中编写代码完成删除功能,代码如下:
protectedvoidDataList1_DeleteCommand(objectsource,DataListCommandEventArgse)
stringstrid=;
//获取当前DataList控件列
stringcom="
Deletefromtb_LeaveWordwhereID='
+Convert.ToInt32(strid)+"
da.ExceSQL(com);
"
LeaveWordManage.aspx"
(五)回复留言
LeaveWordBack.aspx是回复留言页面,显示效果如下:
回复留言模块的主要功能是对留言人的留言进行回复,方便交流沟通。
回复留言模块通过留言信息管理模块中传递过来的值,从留言表中检索出相应的ID和留言主题,并将留言主题绑定到控件中。
在与数据库的交互中,要获得数据访问的结果可以通过DataReader对象从数据源中获取数据并进行处理。
DataReader是一个DBMS所特有的,常用来检索大量数据。
DataReader在一个接一个地查看查询结果的记录时使用。
并且,DataReader是查询结果的一种只进、只读的视图。
本系统使用DataReader对象保存信息的代码如下:
=dr["
本模块根据传来的编号值来查找tb_LeaveWord中的信息,实现将数据绑定到控件中的功能,用户把信息输入到文本框中,通过“提交”按钮完成向数据库提交数据的操作。
回复留言是留言板中关键的一项,主要实现步骤如下:
(1)创建Web窗体,命名LeaveWordBack.aspx。
(2)回复留言页