第5章 商城留言板的制作实训报告
实训名称:商城留言板制作
实训人: 学号:0900002209 班级:网络0912 指导教师: 同组学生姓名: 实验地点: 创新楼 实验日期: 2011 年 9 月 23 日
一、实训目的:
1、熟练数据操作类的应用,实现插入操作,学会处理特殊字符 2、掌握自定义分页技术;
3、学会图像的上传与管理,掌握留言管理页的建立方法,熟悉超链接方式传递参数;
4、实现简单的留言回复,增强留言板的交互性; 5、熟悉验证码技术;
二、实训内容:
1、添加留言
设计一个简单的留言界面,在此留言界面中,留言者可以填写姓名和留言内容并提交到数据库,通过单击“查看留言”连接显示所有留言内容。
2、留言分页显示
分页显示已有留言,留言者和留言时间显示在左侧,留言内容显示在右侧,奇数行和偶数行有所区别,以方便是识别; 3、显示带有图像的留言:
在显示留言界面显示留言内容,并将留言时加入的头像显示出来;
4、管理员登录页面设计
登录时需要输入随机生成的验证码; 5、建立留言管理页
在留言管理页中管理员可以查看已有留言,并可以回复和删除指定留言;
三、实训的相关代码:
1、添加留言,关键性代码如下:
protected void Button1_Click(object sender, EventArgs e) {
string strName = Server.HtmlEncode(TextBox1.Text); strName = strName.Replace(\, \); strName = strName.Replace(\, \); strName = strName.Replace(\, \);
string strContent = Server.HtmlEncode(TextBox2.Text); strContent = strContent.Replace(\, \); strContent = strContent.Replace(\, \); strContent = strContent.Replace(\, \);
string strSQL = \into message(留言者,正文,时间) values('\ + TextBox1.Text + \ + TextBox2.Text + \ + DateTime.Now.Date + \; if (DbManger.ExecuteNonQuery(strSQL) > 0) {
Response.Write(\插入成功')\);
Response.Write(\); } else
Response.Write(\插入失败')\); }
2、留言分页显示,关键性代码如下:
protected void Page_Load(object sender, EventArgs e) {
int ipageSize = 5;
string strTableName = \; string strKey = \; string strORDER = \; string strFields = \; int iCurPage; int iMaxPage; string sql = \;
string sqlstr = \+ strTableName; if (Request.QueryString[\] != \)
iCurPage = Convert.ToInt32(Request.QueryString[\]);
else
iCurPage = 1;
int intTotalRec = Convert.ToInt32(DbManger.ExecuteScalar(sqlstr)); if (intTotalRec % ipageSize == 0) iMaxPage = intTotalRec / ipageSize; else
iMaxPage = intTotalRec / ipageSize + 1; if (iMaxPage == 0) iMaxPage = 1; if (iCurPage < 1) iCurPage = 1; else
if (iCurPage > iMaxPage) iCurPage = iMaxPage; if (intTotalRec != 0) {
if (iCurPage == 1)
sql = \ + ipageSize + \ + strFields + \ + strTableName + \ + strKey + \ + strORDER; else
sql = \ + ipageSize + \ + strFields + \ + strTableName + \ + strKey + \ + (iCurPage - 1) * ipageSize + \ + strKey + \\ + strTableName + \order by \ + strKey + \\ + strORDER + \by \ + strKey + \\ + strORDER; Repeater1.DataSource = DbManger.ExecuteQuery(sql); Repeater1.DataBind();
Label1.Text = \共有\ + intTotalRec.ToString() + \条记录 当前是第\ + iCurPage.ToString() + \ + iMaxPage.ToString() + \页\; if (iCurPage != 1) {
hlFrst.NavigateUrl = Request.FilePath + \;
hlPre.NavigateUrl = Request.FilePath + \ + (iCurPage -1); }
if (iCurPage != iMaxPage) {
hlNext.NavigateUrl = Request.FilePath + \ + (iCurPage + 1); hlLast.NavigateUrl = Request.FilePath + \ + iMaxPage; if (intTotalRec <= ipageSize) Panel1.Visible = false; else
Panel1.Visible = true; }
3、显示带有图像的留言,代码如下:
<%@ Control Language=\ AutoEventWireup=\ CodeFile=\ Inherits=\ %>
<%#Eval (\留言者\) %>
在<%#Eval (\时间\) %>留言
<%#Eval (\正文\) %>
<%#Eval (\留言者\) %>
在<%#Eval (\时间\) %>留言
<%#Eval (\正文\) %>
<%#Eval (\回复\,\管理员回复:{0}
\) %>