ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:529.16KB ,
资源ID:8896017      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8896017.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(ASPNET开发大全第25章新闻模块设计.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

ASPNET开发大全第25章新闻模块设计.docx

1、第25章 新闻模块设计 现在的大部分网站都需要使用新闻模块进行网站信息交流,新闻模块是网站之中最传统的交流模块。管理人员能够通过后台进行新闻的发布和修改,用户就能够在前台页面中进行新闻的访问和评论,新闻模块是网站必不可少的模块,例如新浪、腾讯、搜狐等大型网站都离不开新闻模块。 25.1 学习要点 新闻模块需要涉及到一些ASP.NET 3.5的基本知识,如果要仔细学习新闻模块的开发,需要详细了解本书的一些章节知识,这些章节如下所示: q ASP.NET的网页代码模型。 q Web窗体基本控件。 q 数据库基础。 q ADO.NET常用对象。 q Web窗体数据控件。 q A

2、SP.NET内置对象。 q 生成静态的概念 基本了解了以上章节的知识点后,就能够熟练学习和开发此模块。 25.2 系统设计 新闻模块对于网站而言是非常重要的,虽然今天Web 2.0的概念大行其道,但是新闻还是作为网站应用的基础内容而存在,新闻能够提供最简单的用户信息交互,对于新闻信息的筛选和投放同样能够吸引访问者。 25.2.1 模块功能描述 新闻模块对于网站开发而言是最简单也是最重要的,对于网站而言,作为一个信息媒体,需要向用户,也就是网站的使用者进行信息传递。现在的各大门户网站,如新浪、腾讯和搜狐等,依旧使用的是新闻作为网站主导,而对于大行其道的Web 2.0,同样也是基于

3、新闻模块的形式进行信息呈现。 新闻模块的开发相对于广告模块而言从技术上实现比较的简单,并没有广告模块实现起来复杂和繁琐,也不需要使用自定义控件。但是新闻模块如果要制作好,还是有一定的难度的,其最主要的难度就在于生成静态和伪静态化。 对于不需要生成静态或伪静态化的新闻,其功能模块抽象起来比较的简单,在新闻使用之前,管理员可以在后台添加新闻分类,用于分类新闻。在添加新闻分类完毕后,就可以添加新闻并选择相应的分类进行新闻分类,分类后的新闻将能够呈现在不同的页面中以显示不同的分类的新闻。从一定的意义上来说,新闻模块的功能对于管理员而言,就只是添加分类和发布新闻,如图25-1所示。 图25-1

4、 新闻模块基本流程分析 正如图25-1所示,管理员能够在后台进行新闻模块中的分类选择和信息填写进行新闻发布,管理员还可以对新闻分类进行管理。但是在管理员进行操作前,首先需要对管理员进行身份验证,以判断管理员是否有合法的权限进行身份验证。 身份验证可以使用登录模块进行身份验证,但是这里的登录模块没有网站的登录控件复杂。这里只需要实现对管理员进行判断,如果判断是管理员则能够通过,如果不是管理员则不允许通过的功能即可。从上述模块功能描述中可以规划成以下几个页面: q 登录页面:管理员登录页面,为管理员提供身份验证。 q 新闻分类添加页面:为管理员提供新闻添加功能。 q 新闻分类管理页面:

5、为管理员提供新闻分类的添加和管理。 q 新闻页面:用于显示新闻。 q 首页调用:用于进行新闻列表的显示,方便用户进行新闻查阅。 这些页面能够为管理员的新闻发布和更新进行操作提供,管理员首先需要在登录页面进行登录操作并进行身份验证。如果验证通过,就能够在新闻分类页面和新闻页面进行新闻分类操作和新闻操作,管理员可以通过新闻分类操作和新闻操作进行新闻的发布和归类,这样有助于在前台的页面中进行调用。 在前台显示中,同样还需要新闻显示页面和首页,新闻显示页面用于显示单个新闻,而首页用于显示新闻相应的列表,如在新浪、腾讯等网站的首页,都是调用最新的一些新闻列表来呈现的,这样有助于用户对新闻信息的筛

6、选和分类。 25.2.2 模块流程分析 在各种类型的网站中,例如腾讯,都可以看到首页被各种新闻版块内容所填充,包括时事、体育、娱乐等等,这些新闻和内容版块都是在后台相关人员进行采编并纳入数据库和页面中的。可以想象,一个大型的门户网站每天会有多少的访问量,如果每次的用户访问都需要从数据库中读取数据,那么一天下来可能有几百万的读取次数,这样无疑会对Web应用带来极大的挑战。 可以观察各种门户的新闻,可以看得出来这些门户的新闻的URL地址的后缀都是.html或者是.shtml的,那么是不是这些网站的开发人员和采编人员当有一条新闻时就手动进行页面编写呢?显然答案是否定的,新闻网站可以将一些新闻

7、静态化,这样就能够保证服务器只需要承受较少的压力依旧可以承担百万级的访问量。 生成静态就是将数据库中的数据或相应的字段进行静态化,例如将.aspx页面的文件进行静态化生成成为.html页面。.html是静态页面,当用户访问.html页面时无需进行数据操作和逻辑操作,对于服务器而言只需要将.html文本发送到浏览器就能够显示页面的内容。这样无疑增加了访问速度。如果网站要生成静态,其基本模块流程如图25-2所示。 图25-2 生成静态解决方案 虽然静态化能够降低服务器的压力,但是静态化同样会牺牲很多的空间。如果将新闻数据中的每个数据进行静态化,这也就是说每一条新闻就会生成一个.html

8、页面,那么有十万条新闻就会生成十万个.html页面,这对服务器操作系统和I/O读写也有更高的要求,如果文件太多,打开文件夹的速度还不如读取数据库。虽然静态化是一个解决方案,但是很多情况下也可以不使用静态化。如果系统不使用静态化,可以使用非静态化的解决方案,如图25-3所示。 图25-3 非静态化的解决方案 相比之下,非静态化的解决方案在实现上来说更加容易,因为静态化的实现方案还需要解析模板。在新闻模块的编写中,可以事先考虑是选择静态化的解决方案还是选择非静态化的解决方案,静态化的解决方案和非静态化的解决方案在开发过程中虽然可以替换,但是也有一定的开发风险。 而对于管理员而言,无需关

9、心是否是静态化的解决方案还是非静态化的解决方案。在后台的操作过程中,管理员只关心自己如何能够快速的进行添加新闻和修改新闻等操作,在执行了相应的操作后,管理员就能够在前台进行新闻显示。 25.3 数据库设计 新闻模块同样需要多个表进进行新闻描述和新闻操作,同样,为了安全起见和模块的可扩展性,还需要其他的表进行数据存储,这些表能够进行新闻的存储、身份验证、新闻分类的增删以及静态化生成保存等操作。 23.3.1 数据库设计 在新闻模块设计中,需要多个表进行新闻描述,同时为了保证管理用户的安全性,还需要设计管理员表,这些表包括news、newsclass和admin三个表,这三个表分别存储

10、新闻、新闻分类和管理员信息。在创建表之前,首先需要创建数据库news,创建完成后就能够创建相应的表。在对新闻模块进行流程分析之后,就能够大概的设计出这三个表中所需要的字段,其中news表所包含的字段如下所示。 q 新闻编号:用于标识新闻,为自动增长的主键。 q 新闻标题:用于表示新闻的标题。 q 发布时间:用于表示新闻发布的事件。 q 新闻作者:用于表示新闻的作者。 q 新闻内容:用于表示新闻的内容。 q 发布天气:用于表示新闻发布的天气。 q 新闻等级:用于表示新闻的等级。 q 阅读次数:用于表示新闻的阅读次数。 q 新闻分类:用于表示新闻的分类,为整型字段。 对于新闻分

11、类表而言,可以使用少数字段进行新闻分类的描述,新闻分类表的字段如下所示。 q 分类编号:用于标识新闻的分类,为自动增长的主键。 q 分类名称:用于显示新闻分类的名称。 在管理员进行新闻操作之前,首先需要验证身份,如果管理员是合法用户则通过验证,否则就不允许进行后续操作,管理员的身份验证和登录模块基本相同,但是其功能要比登录模块少很多,admin表结构中的字段如下所示。 q 管理员编号:用于标识管理员信息,为自动增长的主键。 q 管理员用户名:用于标识管理员用户名。 q 管理员密码:用于标识管理员的密码,通常情况下和管理员用户名一起进行身份验证。 对于新闻表而言,其功能并不是十分的

12、复杂,而新闻模块的难度不在于数据库的设计上,而在于前台显示和静态生成,静态生成主要是要利用模板解析技术进行静态生成,模板解析技术可以使用编程的方法进行编写也可以使用数据库进行模板技术的支持,这里使用htm文本作为数据库进行技术解析处理,将在后面的章节进行介绍。 25.3.2 数据表的创建 创建表可以通过SQL Server Management Studio视图进行创建也可以通过SQL Server Management Studio 查询使用SQL语句进行创建。新闻模块同样需要创建多个表进行模块功能的实现,首先最重要的是news表,news表的字段如下所示。 q id:用于标识新闻,

13、为自动增长的主键。 q title:用于表示新闻的标题。 q time:用于表示新闻发布的事件。 q author:用于表示新闻的作者。 q content:用于表示新闻的内容。 q weather:用于表示新闻发布的天气。 q level:用于表示新闻的等级。 q hits:用于表示新闻的阅读次数。 q classname:用于表示新闻的分类,为整型字段。 确定好news表的各个字段后,就能够创建一个news表,news表结构如图25-4所示。 图25-4 news表结构 图中的字段描述了相应的字段在实际应用中的意义,创建表的SQL语句如下所示。 USE

14、 [news] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[news]( //创建news表 [id] [int] IDENTITY(1,1) NOT NULL, [title] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, [time] [datetime] NULL, [author] [nvarchar](

15、50) COLLATE Chinese_PRC_CI_AS NULL, [content] [nvarchar](3000) COLLATE Chinese_PRC_CI_AS NULL, [weather] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, [level] [int] NULL, [hits] [int] NULL, [classname] [int] NULL, CONSTRAINT [PK_news] PRIMARY KEY CLUSTERED

16、 ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] news表中的classname字段为整型字段,这也就是说classname字段为另一个表的外键,另一个表newsclass用于描述新闻的分类的信息,newsclass字段如下所示。 q id:用于标识新闻的分类

17、为自动增长的主键。 q classname:用于显示新闻分类的名称。 上述字段描述了newsclass表中需要使用的字段,可以使用SQL语句进行表和字段的创建,创建newsclass表的SQL语句如下所示。 USE [news] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[newsclass]( //创建newsclass表 [id] [int] IDENTITY(1,1) NOT NUL

18、L, [classname] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_newsclass] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

19、 ) ON [PRIMARY] 上述代码创建了newsclass表,创建完成后,还需要创建admin表,通过上述字段描述可以了解admin表只需要保存管理员的用户名和密码即可,则其字段可以描述为如下所示。 q id:用于标识管理员信息,为自动增长的主键。 q admin:用于标识管理员用户名。 q password:用于标识管理员的密码,通常情况下和管理员用户名一起进行身份验证。 上述字段描述了admin表中需要使用的字段,可以使用SQL语句进行表和字段的创建,创建newsclass表的SQL语句如下所示。 USE [news] GO SET ANSI_

20、NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[admin]( //创建admin表 [id] [int] IDENTITY(1,1) NOT NULL, [admin] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, [password] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_a

21、dmin] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] 上述代码创建了admin表,用于进行管理员的身份验证,创建完成后的admin表和newsclass表如图25-5和图25-6所示。 图25-5

22、admin表结构 图25-6 newsclass表结构 创建完成admin表之后就需要插入一个管理员,在SQL中可以新建查询并执行SQL语句进行管理员表中数据的插入,示例代码如下所示。 INSERT INTO admin (admin,password) VALUES (‘guojing’,’0123456’) 执行上述代码就能够进行admin表的数据插入,插入一个新管理员之后,就能够在后面的登录操作中使用该表的管理员信息。 25.4 界面设计 新闻模块包括众多的页面,这些页面包括登录页面、后台框架集、新闻发布页面、新闻删除页面等页面,这些页面都需

23、要进行界面设计。在后台的开发过程中,虽然对后台的界面设计并没有苛刻的要求,但同样需要良好的用户体验,本章使用Microsoft Expression Web 2进行页面设计。 25.4.1 登录界面 登录界面用于进行管理员的身份验证,管理员可以在后台进行登录执行相应的新闻操作,如果管理员为合法用户,则允许进行新闻操作,否则不允许进行新闻操作,登录界面HTML代码见光盘中源代码\第25章\25-1\25-1\admin\login.aspx。 上述代码使用了TextBox控件以及验证控件和按钮控件,这些控件用于验证用户输入的是否正确并且判断用户是否为合法管理员,管理员可以通过该页面进行登

24、录操作。如果登录成功,系统会跳转到后台管理框架集中,如果登录不成功,则会提示相应的错误信息。 25.4.2 后台框架集 后台操作中,为了提高页面的友好度,可以使用框架集进行后台开发,框架集是多个网页组成的一个页面,使用框架集能够在不刷新的情况下进行页面跳转,使用Microsoft Expression Web 2可以制作框架集。在Microsoft Expression Web 2中,单击【文件】选项,在下拉菜单中单击【新建】选项,单击【网站】选项,在弹出窗口中选择框架集,如图25-7所示。 框架集可以将多个页面放置在同一个页面,在Microsoft Expression Web 2中

25、可以创建框架集并为框架集中的页面进行指定或新建,如图25-8所示。 图25-7 创建框架集 图25-8 设置初始网页或新建网页 开发人员可以在框架集中创建网页或选择设置初始网页,这里创建三个网页,头部的网页用于显示后台管理的基本信息,包括这是什么后台管理系统;左侧的边栏用于显示操作,这里使用TreeView控件进行显示;中间为主操作区,该操作区用于后台中主要的页面操作。设置完成后示例代码见光盘中源代码\第25章\25-1\25-1\admin\default.aspx。 页面中的代码使用了一个框架集。在该框架集中包括三个页面,这三

26、个页面分别为top.aspx、left.aspx和center.aspx,其中top.aspx用于显示相应的信息,主要是用来作为导航或者后台提示,left.aspx用于显示导航,使用TreeView控件能够为该页面制作相应的导航,而center.aspx用于呈现相应的操作页面,在这里可以被成为主工作区。 开发人员能够在不同的页面进行布局,控件拖动和事件等操作,当用户访问框架集时,各个页面之间互不影响,可以在框架集之间进行页面跳转,其中left.aspx代码见光盘中源代码\第25章\25-1\25-1\admin\left.aspx。 Left.aspx页面代码使用了TreeView控件在l

27、eft.aspx页面中添加了导航信息,但是上述代码并没有配置TreeView控件中相应字段的URL属性,开发人员可以通过TreeView控件的属性进行配置。这里只提供left.aspx代码,对于其他页面的代码可以自行布局显示。如图25-9所示。 图25-9 框架集布局 25.4.3 新闻发布页面 新闻发布页面是新闻系统中最为重要的页面,新闻发布页面主要使用ADO.NET进行新闻的发布和提交等操作,管理员能够在该页面进行新闻填写、新闻分类选择,然后管理员就能够进行新闻数据操作,新闻发布页面示例代码见光盘中源代码\第25章\25-1\25-1\admin\news_add.aspx。

28、 News_add.aspx页面代码使用了基本的文本框控件用于文本的输入。在一些用户数据输入时,为了保证用户输入的是完整的、符合规范的以及安全的数据,就需要使用下拉菜单控件进行数据呈现,示例代码见光盘中源代码\第25章\25-1\25-1\admin\news_add.aspx中下拉菜单所示。 News-add.aspx页面代码声明了多个文本框控件和下拉菜单控件用于文本的输入和呈现,管理员还需要通过数据源控件进行数据绑定并通过按钮控件进行数据提交。按钮控件用于数据提交,而数据绑定控件主要用于绑定下拉菜单方便管理员选择,示例代码见光盘中源代码\第25章\25-1\25-1\admin\new

29、s_add.aspx中数据源配置代码所示。 新闻发布页面使用了数据源控件进行新闻分类的绑定,这也就是说明了在新闻添加之前,必须要选择新闻分类,否则新闻分类没有被填写,系统就会提示错误。在新闻页面设计中,使用TextBox控件和验证控件对管理员的操作进行验证和控制,如果管理员没有填写相应的信息,则系统会提示管理员填写,当管理员填写完成后,就可以单击控件进行提交。 25.4.4 新闻修改页面 新闻修改页面可以使用控件进行编写,新闻修改页面的数据获取同样需要从传递的参数中进行选择和判断,在ASP.NET 3.5中提供了一些数据绑定控件能够进行相应的数据的查询和更新,这里使用DetailsVi

30、ew控件,示例代码见光盘中源代码\第25章\25-1\25-1\admin\modi.aspx。 上述代码使用DetailsView控件进行数据绑定并能够使用DetailsView控件自带的更新功能进行数据更新。由于新闻更改页面需要通过获取的参数进行查询和更新,在配置DetailsView控件使用的数据源时,SELECT查询语句必须配置参数,如图25-10所示。 图25-10 配置WHERE子句 配置WHERE子句就能够让数据源通过传递的参数进行相应的数据更新而不会涉及到其他的新闻数据,数据源源代码见光盘中源代码\第25章\25-1\25-1\admin\modi.aspx中数据源

31、配置代码。 在配置数据源时,同样需要配置能够自动生成“插入、更新、删除”等操作,这样数据绑定控件才能够支持数据的插入、更新和删除。在新闻修改页面,只需要进行新闻的更新即可,在配置数据绑定控件时,无需选择“插入、删除”等操作。 25.4.5 新闻管理页面 新闻管理页面可以使用GridView控件进行编程,这样不仅能够简化开发人员的开发操作,还能够提高开发效率,因为GridView控件能够支持数据的更新和删除,使用GridView控件能够直接执行数据的更新和删除操作。由于新闻修改页面是一个单独的页面,而且在单独的页面中进行新闻修改能够提高用户体验,所以在新闻管理页面中就不再使用修改功能,G

32、ridView控件示例代码见光盘中源代码\第25章\25-1\25-1\admin\manage.aspx。 使用GridView控件可以进行相应字段的筛选,在管理页面中,并不需要每个字段都显示,例如content新闻内容字段。如果在管理页面同样要呈现content字段的话,那么当content字段的数据很多,例如是一篇很长的文章,那么页面就会被压缩的很难看,甚至变形。所以在新闻管理页面可以选择显示相应的字段而不显示一些不常用的字段,GridView控件配置后如图25-11所示。 图25-11 GridView控件 GridView控件自己能够支持删除操作。在GridView控件中

33、需要添加HypeLink列进行页面跳转。当管理人员单击【修改】连接时,就能够跳转到新闻修改页面进行新闻修改,而无需关心新闻修改页面的开发和维护。 25.4.6 新闻分类管理页面 新闻分类管理页面用于管理新闻分类,管理员可以在新闻分类管理页面进行新闻分类的添加和删除,在新闻分类的管理和添加页面中,同样可以使用ASP.NET 3.5提供的ListView控件进行分页、添加、修改、删除等操作,示例代码见光盘中源代码\第25章\25-1\25-1\admin\classmanage.aspx。 ListView控件能够提供数据的插入、更新和删除等功能,对于简单的数据操作可以使用ListVie

34、w控件进行功能实现,而如果需要复杂的数据操作和页面布局,使用ListView控件就不能很好的完成。ListView控件通常情况下可以使用到数据较少,数据字段较短的情况下,如果对页面布局要求不是很高,也可以使用ListView控件。 25.5 代码实现 在新闻模块开发中包含了很多的页面,这些页面有些可以使用控件进行实现,而有些需要使用编程的方法进行代码实现,例如登录时的身份验证,新闻模块中的新闻发布甚至是新闻显示和生成静态等功能。这些功能没有现有的控件提供功能实现,而需要开发人员进行代码实现。 25.5.1 导航菜单配置 在后台管理的框架集中,可以配置导航菜单进行页面跳转,管理人员可

35、以通过导航菜单进行页面的管理和跳转操作。当管理员单击导航菜单上的新闻管理时,就应该在主工作区中间显示新闻管理页面而不会刷新其他页面,同样当管理员点击其他操作时,会跳转到不同的页面。导航菜单示例代码见光盘中源代码\第25章\25-1\25-1\admin\left.aspx。 Left.aspx页面代码使用了TreeView控件中节点的NavigateUrl属性配置了单击该节点时应该跳转的页面,并使用了节点的Target属性进行了连接应该跳转的框架集。 注意:在超链接中包含target属性,而TreeView控件同样包含Target属性。在框架集中,需要指定相应的连接所需要跳转的框架,否则跳

36、转的框架会在自身页面中执行。 25.5.2 身份验证页面 在管理员操作之前,首先需要进行身份验证,如果管理员是合法的用户,那么系统就能够使管理员进行添加和删除等操作。如果系统验证操作人员不是合法用户,那么就不应该为用户赋予权限,并阻止用户的登录和管理操作。打开登录页面,双击按钮编写相应的登录事件,示例代码如下所示。 protected void Button1_Click(object sender, EventArgs e) { try { SqlConnectio

37、n con = new SqlConnection("Data Source=(local); Initial Catalog=news;Integrated Security=True"); //创建连接 con.Open(); string strsql = "select * from admin where admin='" + TextBox1.Text + "' and password='"

38、 + TextBox2.Text + "'"; //创建SQL SqlDataAdapter da = new SqlDataAdapter(strsql, con); //创建适配器 DataSet ds = new DataSet(); //创建数据集 int count = da.Fill(ds, "table"); //填充数据集 if (count > 0) //如果存在用户

39、 { Session["admin"] = TextBox1.Text; //配置一个Session Response.Redirect("default.aspx"); //页面跳转 } else { Label1.Text = "无法登录,请检查用户名和密码"; //提示无法登录

40、 } } catch { Label1.Text = "无法进行数据连接"; //抛出异常 } } 上述代码使用了ADO.NET中的数据对象进行数据操作,其操作和登录控件一样,在数据库中查询相应的信息,如果查询的结果大于0则说明该查询在数据库中是有效的,也就是说存在这样一个管理员能够进行登录,而如果查询的结果小于0则说明不存在相应的管理员。 在管理页面的各个页面都需要进行用户身份判断,当管理员登录成功后,系统会配置一个S

41、ession对象给用户,如果管理员操作超时或者操作者是一个非法用户,那么就没有Session对象。在各个页面判断Session对象是否存在,就能够判断是否是合法的管理员,示例代码如下所示。 if (Session["admin"] == null) //如果不为管理员 { Response.Redirect("login.aspx"); //登录跳转 } 如果相应的Session对象为空,就说明正在操作的用户不具备管理权限,则应该跳转到login.a

42、spx页面进行重新进行登录操作。 25.5.3 新闻发布页面 在新闻发布页面,管理员只需要在相应的字段进行新闻内容的填写,包括新闻的标题、内容、作者等就能够进行新闻的发布。对于非静态生成的新闻发布而言,只需要进行数据的插入即可,示例代码如下所示。 protected void Page_Load(object sender, EventArgs e) { if (Session["admin"] == null) //如果不为管理员 { Respon

43、se.Redirect("login.aspx"); //登录跳转 } TextBox2.Text = DateTime.Now.ToString(); //初始化字段 } protected void Button1_Click(object sender, EventArgs e) { try { SqlConnection con = new SqlConnection("

44、Data Source=(local); Initial Catalog=news;Integrated Security=True"); //创建连接 con.Open(); //打开连接 string strsql = "insert into news (title,time,author,content,weather,level,hits,classname) values

45、 ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox5.Text + "','" + TextBox4.Text + "','" + DropDownList1.Text + "',0,'" + DropDownList2.Text + "')"; //SQL语句 SqlCommand cmd = new SqlCommand(

46、strsql, con); //创建Command cmd.ExecuteNonQuery(); //执行SQL语句 Response.Redirect("manage.aspx"); //页面跳转 } catch(Exception ee) { Response.Write(ee.ToString()); //抛出异常 }

47、} 新闻发布页面只需要执行相应的SQL语句进行数据插入即可,如果新闻发布只需要进行动态读取,那么只需要进行静态插入新闻即可,而不需要进行模板解析操作;如果需要生成静态页面,那么就需要进行模板编写再生成纯静态页面。 25.5.4 静态生成功能 静态生成听上去非常的复杂,但是其实静态生成非常的简单。当管理员发布一条新闻,就会在数据库中插入数据,数据插入后就应该解析模板进行静态生成。静态生成的是一个文件,这个文件可以是一个.html文件或者.shtml文件。在生成文件之前,可以运行以下代码,示例代码如下所示。 protected void Page_Load(object

48、sender, EventArgs e) { if (!IsPostBack) //判断加载 { string str = "*title*"; //模板代码 string database = "新闻标题"; //数据库字段 string output = str.Replace("*title*", database); //替换操作

49、 Response.Write(output); //输出字符串 } } 上述代码简单的定义了一个模板代码,其中str变量被定义为标签,database变量被定义为新闻标题,当需要生成静态时,可以将模板中代码的关键字进行替换,例如这里的*title*替换成为database变量中的标签,替换完成后输出替换后的字符串生成即可。在模板代码中,模板代码如下所示。 string str = "*title*"; 其中*title*是定义的标签,用于替换关键字,

50、title*可以替换新闻标题数据进行呈现。在了解了静态生成的原理之后,就能够使用模板解析进行静态生成,示例代码如下所示。 protected void Button1_Click(object sender, EventArgs e) { try { SqlConnection con = new SqlConnection("Data Source=(local); Initial Catalog=news;I

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服