社区网站后台管理系统大学论文

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

xxxx市xxxx区“xxxx”社区网站(后台管理系统)
毕业设计说明书
目录
内容摘要 (1)
一、引言 (2)
(一)开发背景 (2)
(二)选题内容 (2)
1.课题的总体介绍 (2)
2.指导思想及技术路线 (2)
3.应解决的主要问题 (2)
二、系统设计相关介绍 (2)
(一)技术介绍 (2)
(二)图形编程技术介绍 (3)
三、系统需求分析 (7)
(一)系统功能需求 (7)
1.网站常规管理模块 (7)
2.新闻中心管理模块 (7)
3.注册用户管理模块 (7)
4.四季论坛管理模块 (7)
(二)开发及运行环境 (7)
1.软件环境 (7)
2.硬件环境 (8)
四、系统的概要设计 (8)
(一)系统的框架图设计 (8)
(二)系统的模块设计 (8)
1.登录页面的设计 (8)
2.后台页面的界面设计 (9)
五、系统的详细设计 (9)
(一)后台管理系统流程图 (10)
(二)后台管理系统功能结构图 (10)
(三)数据表结构 (10)
1.系统数据表社区公告表 (10)
2.系统数据表社区新闻表 (11)
3.系统数据表活动表 (11)
4.系统数据表会员表 (11)
5.系统数据表评论表 (12)
6.系统数据表帖子表 (12)
7.系统数据表回复表 (13)
(四)系统实现 (13)
1.管理员登录 (13)
2.密码修改 (16)
3.公告管理 (18)
4.公告添加模块 (22)
5.帖子管理 (24)
6.在线客服 (29)
六、总结 (31)
致谢 (33)
参考文献 (33)
xxxxxxxx区“xxxx”社区网站(后台管理系统)
内容摘要
xxxx市xxxx区“xxxx”社区网站后台管理系统本着为社区服务人员提供一个实现对社区的信息化管理和信息的快速传递的平台,从而节省大量的人力和物力,而且极大的丰富和方便了小区居民的日常生活。

本网站主要实现的功能是:实现小区信息的动态发布,小区意见栏的动态管理,论坛的管理等功能。

系统的需求分析是在系统开发的总任务的基础上完成的,并从实际应用的角度考虑,能够极大方便的顺利完成日常的小区的管理工作。

本网站选用的主要开发软件技术是,数据库的创建使用SQL Server2000,以及iframe框架进行布局和三层架构实现数据的增加、删除、修改等功能操作。

本文主要介绍了xxxx市xxxx区“xxxx”社区网站后台管理系统的开发初衷和背景,系统的开发工具,结构化开发的具体步骤,其中包括框架图和一些必要的图形说明。

关键词:;iframe框架;三层架构
一、引言
(一)开发背景
在计算机网络飞速发展的今天,互联网已成为人们快速获取、发布和传递信息的重要渠道,它在整个社会的政治、经济、生活等各个方面发挥着重要的作用。

而今,仅仅依靠原始的手工管理和人们口头的信息传递,已经无法有效的面对人们日常生活对信息的大量需求,并做出相应的判断和处理,社区管理人员的决策只能依据报表数据,在浪费了大量的人力物力的同时无法做到有效的监控,难以保证信息的准确性和及时性,而且居民的有效信息也难以快速的传递给社区工作站的工作人员。

因此,社区管理的信息化就成为了人们向往的目标。

社区管理人员非常需要既有先进的管理思想又适合国内社区和社区信息管理和实
用的网站,作为对社区管理实现有目标和提高现有水平的重要手段。

针对这种情况,社区的管理网站应运而生。

本论文的研究,是运用所学的知识来设计一个完整网站的后台管理系统。

(二)选题内容
1.课题的总体介绍
社区管理员可以登录后台管理系统,对已注册的用户进行删除管理和用户权限的管理;及时更新前台信息,包括社区公告,居民留言,新闻信息,社区生活信息,也可以对已更新的信息进行删除管理;实现对论坛的管理;页面内的搜索。

通过网站的管理实现了社区的信息化的进程,提高了社区工作站的办事效率,方便了居民的生活。

2.指导思想及技术路线
本系统主要采用框架结构,即iframe技术,将多个页面以框架的形式组合起来,使得操作简单易行。

而对于数据库的创建,则是利用SQL Server 2000技术来解决。

SQL Server 2000是Microsoft公司推出的SQL Server 数据库管理系统的一个版本。

3.应解决的主要问题
社区管理员可以对论坛的帖子进行转移、置顶,并对有关帖子设置精华。

由于能力有限经反复测试失败后,只能实现对论坛的删除的功能,并添加论坛的回收站管理功能。

在线聊天的功能用现今流行的PowerTalkBox控件实现,通过绑定Msn来实现多个用户和一个客服进行交流。

用三层架构来实现数据的添加、删除和修改。

二、系统设计相关介绍
(一)技术介绍
被描述为一门技术而不是一种语言,这一点很重要。

该技术通过编程语言访问。

本系统选用的语言是C#,即我们将利用C#创建Web页面,而利用来驱
动它。

基于 技术的系统结构模型 结构是一个三层系统:UI 层、业务逻辑层和数据访问层,具体如图1所示:
图1 的系统三层架构结构模型
xxxx 社区网站后台管理系统中主要运用了用户表示层、业务逻辑层和数据访问层,下面对三层架构进行介绍:
用户表示层(UI ,简称USL )负责与用户交互,接收用户的输入并将服务器端传来的数据呈现给客户。

业务逻辑层(Business Logic Layer ,简称BLL )是表示层与数据访问层之间的桥梁,负责数据处理、传递。

用于访问数据层,从数据层获取数据、修改数据以及删除数据,并把取得的数据放到Data Reader 或Dataset 中返回给表现层。

数据访问层(Database Access Layer ,简称DAL )是直接和数据库进行交互的地方,也是整个系统里唯一允许访问数据库的地方。

该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。

除此之外,还有一个业务实体层,这个层比较特殊,就是定义实体类的地方,变成一个公共层。

(二) 图形编程技术介绍
在各种黑客攻击中,很常见的就是套取用户名和密码,其中很多是采用枚举字典的方式来不断的测试用户名和密码。

验证码技术是目前很多WEB 程序采用的一种安全防御技术。

系统在登录的时候不但要输出用户名和密码,还要额外输入一种随机生成的验证码文本,此时用户需要正确的输入这三个信息才能登录到系统中。

验证码技术使用了一定的图形编程。

首先建一个图片服务页面(CheckCode.aspx ),专门用于提供包含验证码文本的图片。

其HTML 代码很简单,只有一行,不输出任何内容。

在其Page_Load 方法中就有创建验证码图片的过程。

<%@ Page Language ="C#" AutoEventWireup ="true" CodeFile ="CheckCode.aspx.cs" Inherits ="Admin_CheckCode" %>
protected void Page_Load(object sender, EventArgs e)
{
// 在此处放置用户代码以初始化页面
Response.Cache.SetCacheability(System.Web.HttpCacheability .NoCache);
Session["Sjjh_VCode"] = GenerateCheckCode();


库 业务逻辑层 处理逻辑关系,数据的有效性判断等。

传递Sql 语句
操作数据库 数据访问层: 从逻辑层接收Sql 指令; 到数据库中读取所需要
数据;
this.CreateCheckCodeImage(Session["Sjjh_VCode"].ToString());
}
//获取随即产生的数字
private string GenerateCheckCode()
{
int number;
char code;
string checkCode = String.Empty;
Random random = new Random();
for (int i = 0; i < 5; i++) //产生5个随机数
{
number = random.Next();
code = (char)('0' + (char)(number % 10));
checkCode += code.ToString();
}
return checkCode;
}
//创建生成验证码的图片
private void CreateCheckCodeImage(string checkCode)
{
if (checkCode == null || checkCode.Trim() == String.Empty)
return;
System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length *
12.5)), 23); // 创建位图绘制对象
Graphics g = Graphics.FromImage(image); // 绘制验证码文本
//生成随机生成器
Random random = new Random();
//图片背景色
g.Clear(Color.Blue);
//画图片的背景噪音线
Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold |
System.Drawing.FontStyle.Italic));
System.Drawing.Drawing2D.LinearGradientBrush brush = new
System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.White, Color.Silver, 1.2f, true);
g.DrawString(checkCode, font, brush, 2, 2); //调用图形绘制对象的DrawString函数将验证码文本显
示在这个位图上
//画图片的前景噪音点
for (int i = 0; i < 88; i++)
{
int x = random.Next(image.Width);
int y = random.Next(image.Height);
image.SetPixel(x, y, Color.FromArgb(random.Next()));
}
//画图片的边框线
g.DrawRectangle(new Pen(Color.Gold), 0, 0, image.Width - 1, image.Height - 1);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "image/Gif";//输出图片
Response.BinaryWrite(ms.ToArray());
}
我们使用.NET框架中随机数生成器 Random类型来生成一个不定长的包含随机数字的文本,这就是验证码原始文本,我们将其保存在session中供以后使用。

然后我们创建一个临时图片CreateCheckCodeImage()的方法,并据此创建一个临时的图像绘制对象,然后调用Graphics的FromImage图形绘制对象,据此我们就可以计算出验证码图片的大小。

其次我们创建一个位图对象,在此基础上创建一个图形绘制对象,然后调用图形绘制对象的DrawString函数将验证码文本绘制在这个位图上。

绘制验证码后我们在图片上随机的制造杂点来混淆图片内容,为使背景图片颜色和整个登录界面的主色调相一致,故设为蓝色。

这些杂点能严重的干扰程序辨认验证码文本。

但人脑在辨认文本时能比较轻松的排除这些干扰。

图片生成后页面就使用GIF格式将图片文档发送到客户端。

验证码图片服务页面完成后,我们就可以利用这个页面来实现验证码技术。

如图2用户登录界面(Login.aspx)所示:
图2 用户登录界面
上面放置输入用户名,密码和验证码的三个文本输入框。

其中验证码输入框后面放置一个图片,图片就来源于CheckCode.aspx页面。

用户输入三个信息后点击确定按钮进行登录。

则运行该按钮的服务器段代码。

protected void btnLogin_Click(object sender, EventArgs e)
{
//判断验证码输入是否错误
if (Session["Sjjh_VCode"].ToString() != txtCode.Text.Trim())
{
JsUtil.ShowMsg("验证码错误!", "?");
}
在该代码中,程序获得用户输入的用户名,密码和验证码,然后判断用户名密码是否正确,还调用Session值来判断验证码是否正确。

只有这三个信息都正确则登录成功,否则登录失败。

在少数情况下,程序生成的验证码图片难以辨认,则需要重新提供新的验证码图片,此时我们在登录页面中可以双击这个图片来更新验证码图片。

显示验证码图片的HTML 代码片断为:
用户单击图片后,浏览器重新调用CheckCode.aspx页面,于是服务器端的验证码文本用了新的,而图片内容也随之更新。

由于每次尝试登录或更换验证码图片时,正确的验证码都是随机的发生改变,毫无规律,这样就很大的增强了登录页面的安全性。

三、系统需求分析
(一)系统功能需求
社区网站后台管理系统,主要用于网站管理员实现对社区新闻信息的发布,修改删除;用户会员的审核,权限设置等,对网站前台的各种信息发布修改删除等。

具体要求如下:
1.网站常规管理模块
网站常规管理模块分为退出系统,用户登录和系统管理三个子菜单。

当管理员成功登录后,如点击“退出系统”,则会跳出对话框询问“是否真的要退出系统?”,点击“确定”,则退出系统,点击“取消”,则返回页面。

点击“用户登录”,跳转到登录页面重新登录。

点击“密码修改”,则实现管理员对自己的密码进行修改。

2.新闻中心管理模块
新闻中心管理模块分为公告管理,发布公告,新闻管理,发布新闻,活动管理和发布活动六个子菜单。

当管理员成功登录后,点击“公告管理”,则实现对前台社区公告的修改和删除管理(如下“新闻管理”和“活动管理”与之同理)。

点击“发布公告”,则可以发布公告栏的信息(如下“发布新闻”与“发布活动”与之同理)。

3.注册用户管理模块
注册用户管理模块分为会员管理,留言管理和评论管理三个子菜单。

当管理员成功登录后,点击“会员管理”,则实现对网站普通会员的修改权限和删除管理。

点击“留言管理”,则实现对用户留言的回复和删除管理。

点击“评论管理”,则实现对用户评论信息的删除管理。

(注:此评论信息为用户对新闻中心的信息进行的评论)
4.四季论坛管理模块
四季论坛管理模块分为帖子管理,回复管理和回收站管理三个子菜单。

当管理员成功登录时,点击“帖子管理”,则实现对论坛帖子的删除管理(此删除管理,并不是真的删除帖子,而是将帖子删除到回收站)。

点击“回复管理”,则实现对帖子的ID号实现,回复删除管理。

点击“回收管理”,则实现对帖子的删除后保存到回收站,在回收站中可实现帖子的恢复和删除管理。

(二)开发及运行环境
1.软件环境
操作系统:WINDOWS 2000/XP
开发工具:VISUAL STUDIO 2005
数据库管理系统:SQL SERVER 2000
2.硬件环境
硬盘大小:20GB以上磁盘空间
显示分辨率:800×600,建议1024×768
具备PENTIUMⅣ、512RAM及以上配置的微型计算机一台
四、系统的概要设计
(一)系统的框架图设计
图3 网站后台管理系统框架图
后台管理系统的框架图设计的主要思路有:用iframe框架布局(Main.aspx),将多个页面以框架的形式组合起来,使得操作简单易行。

系统的功能特点:管理员对前台信息进行即时的更新和删除,实现对注册用的权限管理等。

操作简单方便、界面简洁美观,能更好的为社区管理员提供服务。

(如图3)
(二)系统的模块设计
1.登录页面的设计
1.1设计思路
在平时做项目或课程设计时,我们通常只是用最基本的用户名和密码来验证用户是否有权限登录。

但是,在现在的软件运行环境下,恶意攻击网站的黑客无处不在,且攻击方式日益丰富,尤其是WEB系统由于其开放性更是遇到严峻的考验。

在各种黑客攻击中,很常见的就是套取用户名和密码,其中很多是采用枚举字典的方式来不断的测试用户名和密码。

因此考虑到提高用户登录的安全性,在后台管理员登录时,除了输入基本的用户名和密码的文本框信息验证外,还添加了验证码技术。

管理员正确输入用户名,
密码和验证码时,点击“提交”按钮,提示“登录成功!”,并跳转到后台首页(Main.aspx);点击“取消”时,将用户名,密码和验证码的输入框内容清空。

1.2界面实现(如图4)
图4 登录页面的设计
2.后台页面的界面设计
2.1设计思路
由于后台管理系统主要是实现管理员管理前台界面的功能。

因此,我采用iframe 框架技术来实现布局,整体主要分为上、中、下三个部分。

因为,顶部的导航和底部的版权声明不会改变,所以分别将导航定义为用户自定义控件放入(Top.ascx),底部的版权声明定义为用户自定义控件放入(Footer.ascx)。

中间部分采用左右布局,左边部分放置JavaScript技术实现的菜单,右边部分为功能实现的页面。

实现网站常规管理,新闻中心管理,注册用户管理和四季论坛管理。

其中包括各功能模块的增加、删除和修改。

2.2界面实现(如图5)
图5 后台首面的界面设计五、系统的详细设计提示在线人数、IP 地址和欢迎语句。

(一)后台管理系统流程图
xxxx社区网站主要分为前台和后台,前台主要是社区信息的展示,包括社区概况、社区新闻、公告、活动信息,以及社区职能部门的介绍。

后台主要是实现对前台信息的更新,包括社区新闻、公告、活动信息的即时更新,注册用户的角色管理,论坛帖子管理等,具体如图6所示:
图6 后台管理系统流程图
(二)后台管理系统功能结构图
xxxx社区网站后台管理系统主要分为四个模块:网站常规管理模块、新闻中心管理模块、注册用户管理模块、四季论坛管理模块。

(如图7)
图7 xxxx社区网站后台管理系统功能结构图
(三)数据表结构
1.系统数据表社区公告表
NO 字段字段描述数据类型主键非空
1 ID 公告编号int
Y Y
2 ClassID 类别编号int Y
功能结构
常规管理
论坛
管理
用户
管理新闻
管理
退出系统用户
登录
密码
修改
公告
管理
发布
公告
新闻
管理
发布
新闻
活动
管理
贴子
管理
评论
管理
回复
管理
回收
管理
会员
管理
2.系统数据表社区新闻表
3.系统数据表活动表
4.系统数据表会员表
5.系统数据表评论表
6.系统数据表帖子表
17 AddTime 发布时间smalldatetime N
18 UpdateTime 更新时间smalldatetime N
7.系统数据表回复表
表7 社区网站回复表
NO 字段字段描述数据类型主键非空
1 ID 回复编号int Y Y
2 UID 会员编号int N
2 BBSID 帖子编号int N
3 UserName 会员昵称nvarchar(50) N
4 Title 回复标题nvarchar(50) N
5 Content 回复内容ntext(16) N
6 AddTime 添加时间smalldatetime N
7 AddOn 继续添加nvarchar(50) N
10 UpdateTime 更新时间smalldatetime N
(四)系统实现
1.管理员登录
1.1界面实现(如图8)
图8 管理员登录
1.2设计思路与解决过程
管理登录时,需要验证其用户名和密码是否与数据库中已注册的管理员信息一致,并且要验证其权限是否是“系统管理员”或是“普通管理员”,当权限验证通过后,进入后台主页进行管理操作,否则提示错误信息“对不起,您没有权限登录!”。

只有当管理员输入正确的用户名,密码和验证码,点击提交,提示“登录成功!”,并跳转到后台首页;若用户名、密码输入为空,则RequiredFieldValidator控件提示“不能为空”;若输入错误则提示“用户名或密码输入错误!”。

1.3主要代码
//管理员登录(Login.cs)
protected void btnLogin_Click(object sender, EventArgs e)
{
================================================================================================= 解析思路:判断情况一:判断用户输入的验证码是否与CheckCode.aspx页面传来的验证文本的Session值是否一致,当用户输入正确的用户名和密码和输入错误的验证码时,点击“提交”后提示错误信息“验证码错误!“,否则继续执行下面代码。

(如图9)
图9 验证码错误
================================================================================================= //判断验证码输入是否错误
if (Session["Sjjh_VCode"].ToString() != txtCode.Text.Trim())
{
JsUtil.ShowMsg("验证码错误!", "?");
}
================================================================================================= 解析思路:判断情况二:判断用户输入的用户名和密码是否正确,当用户名小于2或大于12个字符串时,提示“账号长度必须为2~12个字符!“,当密码长度小于2~15个字符时,提示”密码长度必须为2~15个字符“。

(如图10)
图10 用户名或密码错误
================================================================================================= ///用户登录——定义用户帐号长度2~12个字符,密码长度2~15个字符,并在数据库表中查询是否存在此用户。

string UserName = txtUserName.Text.ToString();
string PassWord = txtPwd.Text.ToString();
if (UserName.Length < 2 || UserName.Length > 12)
JsUtil.ShowMsg("帐号长度必须为2~12个字符!", "javascript:history.back()");
if (PassWord.Length < 2 || PassWord.Length > 15)
JsUtil.ShowMsg("密码长度必须为2~15个字符!" + PassWord.Length,
"javascript:history.back()");
================================================================================================= 解析思路:随即,调用三层架构中UserBll页面中的Exists方法,判断数据库中是否存在此权限用户,若存在,则提示“登录成功!“,若不存在则提示”用户名或密码错误!“,当验证用户没有此登录权限时,提示”对不起,请没有权限登录!“(如图11、12)
图11 判断用户是否存在
图12 用户成功登录
================================================================================================= if (bll.Exists("and UserName='" + UserName + "' and Syspass='" + PassWord + "' and UserType='SysMaster'"))//系统管理员登录
{
Session["id"] = user.UID;
Session["username"] = txtUserName.Text.Trim();
Session["usertype"] = erType;
JsUtil.ShowMsg("登录成功!", "Main.aspx");
}
if (bll.Exists("and UserName='" + UserName + "' and Syspass='" + PassWord + "' and UserType='Master'"))//管理员登录
{
Session["id"] = user.UID;
Session["usertype"] = erType;
Session["username"] = txtUserName.Text.Trim();
JsUtil.ShowMsg("登录成功!", "Main.aspx");
}
if (bll.Exists("and UserName='" + UserName + "' and Syspass='" + PassWord + "' and UserType='User'"))//普通用户登录
{
JsUtil.ShowMsg("对不起,您没有权限登录!");
}
else
{
JsUtil.ShowMsg("用户名或密码不正确!", "Login.aspx");
}
}
//重置,清空输入框中的内容
protected void btnReset_Click(object sender, EventArgs e)
{
txtUserName.Text = "";
txtPwd.Text = "";
txtCode.Text = "";
}
2.密码修改
2.1界面实现(如图13)
图13 密码修改
2.2设计思路与解决过程
网站管理模块可实现管理员退出系统,重新登录,修改密码,以及回到首页等操作。

当管理员员执行完管理操作后,可点击“退出系统“,则会跳出提示框”是否确定退出系统?“,点击”确定“按钮,则实现退出后台主页,回到登录界面(Login.aspx),点击“取消”,则保持不变。

点击“用户登录”后,则可实现管理员在修改密码之后,可重新用新的密码登录系统。

点击”密码修改“,则实现管理员对自己的信息修改,如若密码不修改,则可自留空。

在设计时,系统可成功退出,但在点击浏览器端的“后退”按钮时,却出现也可回到后台管理主页。

这样就会导致网站存在不安全性。

这是由于没有清楚缓存的结果,在网上寻求大量相关信息来解决此问题,但却终不得果,这也是让我遗憾的地方。

即使这样,但也不能否定我在其他方面做得努力。

2.3主要代码
//密码修改(SysPassModify.cs)
protected void btnModify_Click(object sender, EventArgs e)
{
//修改,当用户修改密码小于2或大于15个字符时,提示”密码长度必须为2~15个字符!“,否则,填充到数据库,并提示”修改成功!
string Password, SysPass;
if (txtPassWord.Text != "")
{
Password = txtPassWord.Text;
if (Password.Length < 2 || Password.Length > 15)
{
JsUtil.ShowMsg("密码长度必须为2~15个字符!" + Password.Length, "javascript:history.back()"); }
}
else
{
Password = lblOldPass.Text;
}
================================================================================================= 解析思路:在实现密码修改功能时,受限要判断修改的前台密码和后台密码的文本框是否为空,如若为空,则将原来的密码赋给定义的Password和SysPass,如果不为空,则需要判断输入的字符串长度是否在2~15个字符之间,如若不在,则提示“密码长度必须为2~15个字符!”(如图14)
图14 密码修改
================================================================================================= //系统密码
if (txtSysPass.Text != "")
{
SysPass = txtSysPass.Text;
if (SysPass.Length < 2 || SysPass.Length > 15)
{
JsUtil.ShowMsg("密码长度必须为2~15个字符!" + SysPass.Length,
"javascript:history.back()");
}
}
else
{
SysPass = lblOldSysPass.Text; }
UserBll bll = new UserBll();
User user = bll.GetModel("and UserName='" + lblUserName.Text + "'");
user.Password = Password;
erType = ddlUserType.SelectedValue;
user.Email = txtEMail.Text;
erName = lblUserName.Text;
user.SysPass = SysPass;
bll.Update(user);
JsUtil.ShowMsg("修改成功!", "Right.aspx");
}
================================================================================================= 解析思路:将修改后的信息重新赋值给User实体类中的字段,并调用UserBll业务逻辑层中的Update方法,将User实体类作为参数,实现修改管理员密码功能。

当修改成功时,则提示“修改成功!”。

(如图15)
图15 密码修改成功
================================================================================================= 3.公告管理
3.1界面实现(如图16)
图16 公告管理
3.2设计思路与解决过程
管理员成功登录之后,在公告管理模块中(AnnounceManage.aspx)可实现对公告栏信息的即时更新和删除,要提高网站的安全性,就要减少设计界面上的涉及信息安全的代码。

要解决这个问题,那么首先考虑的是如何在页面上不用SqlDataSource控件来实现获取数据源,而是用代码来实现呈现公告数据表中的数据记录。

使用代码编写来实现数据绑定,就要在页面中放入GridView数据控件,绑定要显示的数据表中的字段。

在后台代码中,编写要绑定的数据源,并调用公告表的业务逻辑层中已写好的GetPageDataTable()方法。

此外,页面中还可实现上一页、下一页、首页、尾页以及跳转页面的功能实现。

而不是用的控件自定义的上下页的翻页效果,使得管理员操作也更加方便。

(如图16)(新闻与活动信息的管理功能与公告同理,故略)
3.3主要代码
//公告管理(AnnounceManage.cs)
AnnounceBll bll = new AnnounceBll();
protected void Page_Load(object sender, EventArgs e)
{
================================================================================================= 解析思路:页面加载时,首先判断页面是否是第一次加载,随即将分页的首页值1存放在ViewState[“PageIndex”],每页显示的记录数存放在ViewState["PageSize"],从三层架构的AnnounceBll业务逻辑层中获取GetRecordCount()发法来获取公告表中的记录总数,并存放在ViewState["RecordCount"]中,实现GridView控件的分页。

(如图17)
图17 GridView控件分页
================================================================================================= if (!IsPostBack)
{
ViewState["PageIndex"] = 1;//首页为1
ViewState["PageSize"] = 10;//每页显示10条记录
ViewState["RecordCount"] = bll.GetRecordCount("");//获取公告表的总的记录数
BindAnnounce();//获取数据源,绑定公告表
ShowState();//当前页面的状态
InitGoPage();//初始化页面
}
}
================================================================================================= 解析思路:定义GridView控件绑定数据源中的公告表中的ID,Title,Writer,UpdateTime字段,调用三层架构AnnounceBll.cs中GetPageDataTable()方法。

最后将gvAnnounce进行绑定DataBind()。

================================================================================================= //绑定公告表,获取数据源
private void BindAnnounce()
{
gvAnnounce.DataSource = bll.GetPageDataTable(int.Parse(ViewState["PageIndex"].ToString()), int.Parse(ViewState["PageSize"].ToString()), "ID,Title,Writer,UpdateTime", "", "ID", true); gvAnnounce.DataBind();
}
================================================================================================= 解析思路:绑定gvAnnounce中的列,获取列中的文本e.Row.Cells[3].Text,实现对具体的列的功能操作:修改和删除。

根据gvAnnounce中第一列的公告ID进行修改页面和删除页面之间的传递ID 操作。

================================================================================================= protected void gvAnnounce_RowDataBound(object sender, GridViewRowEventArgs e)
{//指定数据列中行的功能包括:修改和删除
if (e.Row.RowType == DataControlRowType.DataRow)
{
//获取绑定的列
e.Row.Cells[3].Text = "<a href=\"AnnounceModify.aspx?ID=" + e.Row.Cells[0].Text + "\">★
修改</a>";
e.Row.Cells[4].Text = "<a href=\"AnnounceDelete.aspx?ID=" + e.Row.Cells[0].Text + "\"
onclick=\"return confirm('确定删除吗?')\">☆删除</a>";
}
}
=============================================================================================
解析思路:从AnnounceManage.aspx页面公告ID传递链接到公告的修改页面,进行初始化页面中的公告信息,调用三层架构中的业务逻辑层和公告实体类并根据传递的ID值进行获取公告信息。

分别显示公告标题、发布公告人、以及公告的详细内容。

管理员可实现对标题和公告内容进行修改,调用公告业务逻辑层中的Update()方法实现公告更新。

点击“修改”时,提示“修改成功!”,并跳转到公告管理页面,方便查看。

页面主要用表格布局,内容显示时不是用的一般的文本框控件,而是用FckEditor控件显示,这样可以方便用户设置公告内容的格式。

(如图18)。

相关文档
最新文档