2022年完整word版,ASP.NET开发大全第章.新闻模块设计.docx
精选学习资料 - - - - - - - - - 第 25 章 新闻模块设计现在的大部分网站都需要使用新闻模块进行网站信息沟通,新闻模块是网站之中最传统的沟通模块;治理人员能够通过后台进行新闻的发布和修改,用户就能够在前台页面中进行新闻的拜访和评论,新闻模块是网站必不行少的模块,例如新浪、腾讯、搜狐等大型网站都离不开新闻模块;25.1 学习要点新闻模块需要涉及到一些 ASP.NET 3.5 的基本学问,假如要认真学习新闻模块的开发,需要具体了 解本书的一些章节学问,这些章节如下所示:ASP.NET 的网页代码模型;Web 窗体基本控件;数据库基础;ADO.NET 常用对象;Web 窗体数据控件;ASP.NET 内置对象;生成静态的概念 基本明白了以上章节的学问点后,就能够娴熟学习和开发此模块;25.2 系统设计新闻模块对于网站而言是特别重要的,虽然今日Web 2.0 的概念大行其道,但是新闻仍是作为网站应用的基础内容而存在,新闻能够供应最简洁的用户信息交互,对于新闻信息的挑选和投放同样能够吸 引拜访者;25.2.1 模块功能描述新闻模块对于网站开发而言是最简洁也是最重要的,对于网站而言,作为一个信息媒体,需要向用 户,也就是网站的使用者进行信息传递;现在的各大门户网站,如新浪、腾讯和搜狐等,照旧使用的是新闻作为网站主导,而对于大行其道的Web 2.0,同样也是基于新闻模块的形式进行信息出现;新闻模块的开发相对于广告模块而言从技术上实现比较的简洁,并没有广告模块实现起来复杂和繁 琐,也不需要使用自定义控件;但是新闻模块假如要制作好,仍是有肯定的难度的,其最主要的难度就 在于生成静态和伪静态化;对于不需要生成静态或伪静态化的新闻,其功能模块抽象起来比较的简洁,在新闻使用之前,治理 员可以在后台添加新闻分类,用于分类新闻;在添加新闻分类完毕后,就可以添加新闻并挑选相应的分 类进行新闻分类,分类后的新闻将能够出现在不同的页面中以显示不同的分类的新闻;从肯定的意义上名师归纳总结 - - - - - - -第 1 页,共 19 页精选学习资料 - - - - - - - - - 来说,新闻模块的功能对于治理员而言,就只是添加分类和发布新闻,如图 25-1 所示;图 25-1 新闻模块基本流程分析正如图 25-1 所示,治理员能够在后台进行新闻模块中的分类挑选和信息填写进行新闻发布,治理 员仍可以对新闻分类进行治理;但是在治理员进行操作前,第一需要对治理员进行身份验证,以判定管 理员是否有合法的权限进行身份验证;身份验证可以使用登录模块进行身份验证,但是这里的登录模块没有网站的登录控件复杂;这里只需要实现对治理员进行判定,假如判定是治理员就能够通过,假如不是治理员就不答应通过的功能即可;从上述模块功能描述中可以规划成以下几个页面:登录页面:治理员登录页面,为治理员供应身份验证;新闻分类添加页面:为治理员供应新闻添加功能;新闻分类治理页面:为治理员供应新闻分类的添加和治理;新闻页面:用于显示新闻;首页调用:用于进行新闻列表的显示,便利用户进行新闻查阅;这些页面能够为治理员的新闻发布和更新进行操作供应,治理员第一需要在登录页面进行登录操作 并进行身份验证;假如验证通过,就能够在新闻分类页面和新闻页面进行新闻分类操作和新闻操作,管 理员可以通过新闻分类操作和新闻操作进行新闻的发布和归类,这样有助于在前台的页面中进行调用;在前台显示中,同样仍需要新闻显示页面和首页,新闻显示页面用于显示单个新闻,而首页用于显 示新闻相应的列表,如在新浪、腾讯等网站的首页,都是调用最新的一些新闻列表来出现的,这样有助 于用户对新闻信息的挑选和分类;25.2.2 模块流程分析在各种类型的网站中,例如腾讯,都可以看到首页被各种新闻版块内容所填充,包括时事、体育、消遣等等,这些新闻和内容版块都是在后台相关人员进行采编并纳入数据库和页面中的;可以想象,一 个大型的门户网站每天会有多少的拜访量,假如每次的用户拜访都需要从数据库中读取数据,那么一天下来可能有几百万的读取次数,这样无疑会对Web 应用带来极大的挑战;可以观看各种门户的新闻,可以看得出来这些门户的新闻的URL 地址的后缀都是.html 或者是 .shtml的,那么是不是这些网站的开发人员和采编人员当有一条新闻时就手动进行页面编写呢?明显答案是否599 名师归纳总结 - - - - - - -第 2 页,共 19 页精选学习资料 - - - - - - - - - 定的,新闻网站可以将一些新闻静态化,这样就能够保证服务器只需要承担较少的压力照旧可以承担百万级的拜访量;生成静态就是将数据库中的数据或相应的字段进行静态化,例如将.aspx 页面的文件进行静态化生成成为 .html 页面; .html 是静态页面,当用户拜访 .html 页面时无需进行数据操作和规律操作,对于服务 器而言只需要将 .html 文本发送到浏览器就能够显示页面的内容;这样无疑增加了拜访速度;假如网站 要生成静态,其基本模块流程如图 25-2 所示;图 25-2 生成静态解决方案虽然静态化能够降低服务器的压力,但是静态化同样会牺牲许多的空间;假如将新闻数据中的每个数据进行静态化,这也就是说每一条新闻就会生成一个.html 页面,那么有十万条新闻就会生成十万个.html 页面,这对服务器操作系统和I/O 读写也有更高的要求,假如文件太多, 打开文件夹的速度仍不如读取数据库;虽然静态化是一个解决方案,但是许多情形下也可以不使用静态化;假如系统不使用静 态化,可以使用非静态化的解决方案,如图 25-3 所示;图 25-3 非静态化的解决方案相比之下,非静态化的解决方案在实现上来说更加简洁,由于静态化的实现方案仍需要解析模板;在新闻模块的编写中,可以事先考虑是挑选静态化的解决方案仍是挑选非静态化的解决方案,静态化的 解决方案和非静态化的解决方案在开发过程中虽然可以替换,但是也有肯定的开发风险;而对于治理员而言,无需关怀是否是静态化的解决方案仍是非静态化的解决方案;在后台的操作过 程中,治理员只关怀自己如何能够快速的进行添加新闻和修改新闻等操作,在执行了相应的操作后,管 理员就能够在前台进行新闻显示;25.3 数据库设计新闻模块同样需要多个表进进行新闻描述和新闻操作,同样,为了安全起见和模块的可扩展性,仍 需要其他的表进行数据储备,这些表能够进行新闻的储备、身份验证、新闻分类的增删以及静态化生成 储存等操作;23.3.1 数据库设计在新闻模块设计中,需要多个表进行新闻描述,同时为了保证治理用户的安全性,仍需要设计治理600 名师归纳总结 - - - - - - -第 3 页,共 19 页精选学习资料 - - - - - - - - - 员表,这些表包括 news、newsclass和 admin 三个表,这三个表分别储备新闻、新闻分类和治理员信息;在创建表之前, 第一需要创建数据库news,创建完成后就能够创建相应的表;在对新闻模块进行流程分析之后,就能够大致的设计出这三个表中所需要的字段,其中 新闻编号:用于标识新闻,为自动增长的主键;新闻标题:用于表示新闻的标题;发布时间:用于表示新闻发布的大事;新闻作者:用于表示新闻的作者;新闻内容:用于表示新闻的内容;发布天气:用于表示新闻发布的天气;新闻等级:用于表示新闻的等级;阅读次数:用于表示新闻的阅读次数;新闻分类:用于表示新闻的分类,为整型字段;news 表所包含的字段如下所示;对于新闻分类表而言,可以使用少数字段进行新闻分类的描述,新闻分类表的字段如下所示;分类编号:用于标识新闻的分类,为自动增长的主键;分类名称:用于显示新闻分类的名称;在治理员进行新闻操作之前,第一需要验证身份,假如治理员是合法用户就通过验证,否就就不允 许进行后续操作,治理员的身份验证和登录模块基本相同,但是其功能要比登录模块少许多,admin 表 结构中的字段如下所示;治理员编号:用于标识治理员信息,为自动增长的主键;治理员用户名:用于标识治理员用户名;治理员密码:用于标识治理员的密码,通常情形下和治理员用户名一起进行身份验证;对于新闻表而言,其功能并不是特别的复杂,而新闻模块的难度不在于数据库的设计上,而在于前 台显示和静态生成,静态生成主要是要利用模板解析技术进行静态生成,模板解析技术可以使用编程的方法进行编写也可以使用数据库进行模板技术的支持,将在后面的章节进行介绍;25.3.2 数据表的创建这里使用 htm 文本作为数据库进行技术解析处理,创建表可以通过 SQL Server Management Studio 视图进行创建也可以通过 SQL Server Management Studio 查询使用 SQL 语句进行创建;新闻模块同样需要创建多个表进行模块功能的实现,第一最重要 的是 news 表, news 表的字段如下所示;id:用于标识新闻,为自动增长的主键;title:用于表示新闻的标题;time:用于表示新闻发布的大事;author:用于表示新闻的作者;content:用于表示新闻的内容;weather:用于表示新闻发布的天气;level:用于表示新闻的等级;hits:用于表示新闻的阅读次数;classname:用于表示新闻的分类,为整型字段;确定好 news 表的各个字段后,就能够创建一个news 表, news 表结构如图25-4 所示;601 名师归纳总结 - - - - - - -第 4 页,共 19 页精选学习资料 - - - - - - - - - 图 25-4 news 表结构图中的字段描述了相应的字段在实际应用中的意义,创建表的USE news GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SQL 语句如下所示;CREATE TABLE dbo.news /创建 news 表id int IDENTITY1,1 NOT NULL, title nvarchar50 COLLATE Chinese_PRC_CI_AS NULL, time datetime NULL, author nvarchar50 COLLATE Chinese_PRC_CI_AS NULL, content nvarchar3000 COLLATE Chinese_PRC_CI_AS NULL, weather nvarchar50 COLLATE Chinese_PRC_CI_AS NULL, level int NULL, hits int NULL, classname int NULL, CONSTRAINT PK_news 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 news 表中的 classname 字段为整型字段,这也就是说classname 字段为另一个表的外键,另一个表newsclass 用于描述新闻的分类的信息,newsclass 字段如下所示;id:用于标识新闻的分类,为自动增长的主键;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 IDENTITY1,1 NOT NULL, classname nvarchar50 COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT PK_newsclass PRIMARY KEY CLUSTERED 602 名师归纳总结 - - - - - - -第 5 页,共 19 页精选学习资料 - - - - - - - - - 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 上述代码创建了newsclass 表,创建完成后, 仍需要创建admin 表,通过上述字段描述可以明白admin表只需要储存治理员的用户名和密码即可,就其字段可以描述为如下所示;id:用于标识治理员信息,为自动增长的主键;admin:用于标识治理员用户名;password:用于标识治理员的密码,通常情形下和治理员用户名一起进行身份验证;上述字段描述了admin 表中需要使用的字段,可以使用SQL 语句进行表和字段的创建,创建newsclass 表的 SQL 语句如下所示;USE news GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE dbo.admin /创建 admin 表id int IDENTITY1,1 NOT NULL, admin nvarchar50 COLLATE Chinese_PRC_CI_AS NULL, password nvarchar50 COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT PK_admin 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 admin 表结构图 25-6 newsclass 表结构创建完成 admin 表之后就需要插入一个治理员,在SQL 中可以新建查询并执行SQL 语句进行治理员表中数据的插入,示例代码如下所示;INSERT INTO admin admin,password VALUES guojing ,0123456 执行上述代码就能够进行 admin 表的数据插入,插入一个新治理员之后,就能够在后面的登录操作中使用该表的治理员信息;25.4 界面设计新闻模块包括众多的页面,这些页面包括登录页面、后台框架集、新闻发布页面、新闻删除页面等603 名师归纳总结 - - - - - - -第 6 页,共 19 页精选学习资料 - - - - - - - - - 页面,这些页面都需要进行界面设计;在后台的开发过程中,虽然对后台的界面设计并没有苛刻的要求,但同样需要良好的用户体验,本章使用Microsoft Expression Web 2进行页面设计;25.4.1 登录界面登录界面用于进行治理员的身份验证,治理员可以在后台进行登录执行相应的新闻操作,假如治理员为合法用户,就答应进行新闻操作,否就不答应进行新闻操作,登录界面HTML代码见光盘中源代码 第 25 章25-125-1adminlogin.aspx ;上述代码使用了TextBox 控件以及验证控件和按钮控件,这些控件用于验证用户输入的是否正确并且判定用户是否为合法治理员,治理员可以通过该页面进行登录操作;假如登录胜利,系统会跳转到后台治理框架集中,假如登录不胜利,就会提示相应的错误信息;25.4.2 后台框架集后台操作中,为了提高页面的友好度,可以使用框架集进行后台开发,框架集是多个网页组成的一个页面,使用框架集能够在不刷新的情形下进行页面跳转,使用 Microsoft Expression Web 2 可以制作框架集; 在 Microsoft Expression Web 2 中,单击【文件】 选项, 在下拉菜单中单击【新建】 选项, 单击【网站】选项,在弹出窗口中挑选框架集,如图 25-7 所示;框架集可以将多个页面放置在同一个页面,在 Microsoft Expression Web 2 中可以创建框架集并为框架集中的页面进行指定或新建,如图25-8 所示;图 25-8 设置初始网页或新建网页图 25-7 创建框架集开发人员可以在框架集中创建网页或挑选设置初始网页,这里创建三个网页,头部的网页用于显示后台治理的基本信息,包括这是什么后台治理系统;左侧的边栏用于显示操作,这里使用TreeView控件进行显示;中间为主操作区,该操作区用于后台中主要的页面操作;设置完成后示例代码见光盘中源代码 第 25 章25-125-1admindefault.aspx ;页面中的代码使用了一个框架集;在该框架集中包括三个页面,这三个页面分别为 top.aspx、left.aspx和 center.aspx,其中 top.aspx 用于显示相应的信息,主要是用来作为导航或者后台提示,left.aspx 用于显示导航,使用 TreeView 控件能够为该页面制作相应的导航,而 center.aspx 用于出现相应的操作页面,在这里可以被成为主工作区;开发人员能够在不同的页面进行布局,控件拖动和大事等操作,当用户拜访框架集时,各个页面之间互不影响,可以在框架集之间进行页面跳转,其中left.aspx代码见光盘中源代码第 25 章25-125-1adminleft.aspx ;604 名师归纳总结 - - - - - - -第 7 页,共 19 页精选学习资料 - - - - - - - - - Left.aspx 页面代码使用了 TreeView 控件在 left.aspx 页面中添加了导航信息,但是上述代码并没有配置 TreeView 控件中相应字段的 URL 属性,开发人员可以通过 TreeView 控件的属性进行配置;这里只供应 left.aspx 代码,对于其他页面的代码可以自行布局显示;如图 25-9 所示;图 25-9 框架集布局25.4.3 新闻发布页面新闻发布页面是新闻系统中最为重要的页面,新闻发布页面主要使用ADO.NET 进行新闻的发布和提交等操作, 治理员能够在该页面进行新闻填写、新闻分类挑选, 然后治理员就能够进行新闻数据操作,新闻发布页面示例代码见光盘中源代码第 25 章25-125-1adminnews_add.aspx ;News_add.aspx 页面代码使用了基本的文本框控件用于文本的输入;在一些用户数据输入时,为了 保证用户输入的是完整的、符合规范的以及安全的数据,就需要使用下拉菜单控件进行数据出现,示例 代码见光盘中源代码 第 25 章25-125-1adminnews_add.aspx 中下拉菜单所示;News-add.aspx 页面代码声明白多个文本框控件和下拉菜单控件用于文本的输入和出现,治理员仍 需要通过数据源控件进行数据绑定并通过按钮控件进行数据提交;按钮控件用于数据提交,而数据绑定控 件 主 要 用 于 绑 定 下 拉 菜 单 方 便 管 理 员 选 择 , 示 例 代 码 见 光 盘 中 源 代 码第25章25-125-1adminnews_add.aspx 中数据源配置代码所示;新闻发布页面使用了数据源控件进行新闻分类的绑定,这也就是说明白在新闻添加之前,必需要选 择新闻分类,否就新闻分类没有被填写,系统就会提示错误;在新闻页面设计中,使用 TextBox 控件和 验证控件对治理员的操作进行验证和掌握,假如治理员没有填写相应的信息,就系统会提示治理员填写,当治理员填写完成后,就可以单击控件进行提交;25.4.4 新闻修改页面新闻修改页面可以使用控件进行编写,新闻修改页面的数据猎取同样需要从传递的参数中进行挑选 和判定,在 ASP.NET 3.5 中供应了一些数据绑定控件能够进行相应的数据的查询和更新,这里使用DetailsView 控件,示例代码见光盘中源代码第 25 章25-125-1adminmodi.aspx ;上述代码使用 DetailsView 控件进行数据绑定并能够使用 DetailsView 控件自带的更新功能进行数据更新;由于新闻更换页面需要通过猎取的参数进行查询和更新,在配置 DetailsView 控件使用的数据源时, SELECT 查询语句必需配置参数,如图 25-10 所示;605 名师归纳总结 - - - - - - -第 8 页,共 19 页精选学习资料 - - - - - - - - - 图 25-10 配置 WHERE 子句配置 WHERE 子句就能够让数据源通过传递的参数进行相应的数据更新而不会涉及到其他的新闻数据,数据源源代码见光盘中源代码第 25 章25-125-1adminmodi.aspx 中数据源配置代码;在配置数据源时,同样需要配置能够自动生成“ 插入、更新、删除” 等操作,这样数据绑定控件才能够支持数据的插入、更新和删除;在新闻修改页面,只需要进行新闻的更新即可,在配置数据绑定控件时,无需挑选“ 插入、删除” 等操作;25.4.5 新闻治理页面新闻治理页面可以使用 GridView 控件进行编程,这样不仅能够简化开发人员的开发操作,仍能够提高开发效率,由于 GridView 控件能够支持数据的更新和删除,使用 GridView 控件能够直接执行数据的更新和删除操作;由于新闻修改页面是一个单独的页面,而且在单独的页面中进行新闻修改能够提高用户体验,所以在新闻治理页面中就不再使用修改功能,GridView控件示例代码见光盘中源代码第 25章25-125-1adminmanage.aspx ;使用 GridView 控件可以进行相应字段的挑选,在治理页面中, 并不需要每个字段都显示,例如 content新闻内容字段;假如在治理页面同样要出现 content 字段的话,那么当 content 字段的数据许多,例如是一篇很长的文章,那么页面就会被压缩的很难看,甚至变形;所以在新闻治理页面可以挑选显示相应的字段而不显示一些不常用的字段,GridView 控件配置后如图25-11 所示;606 名师归纳总结 - - - - - - -第 9 页,共 19 页精选学习资料 - - - - - - - - - 图 25-11 GridView 控件GridView 控件自己能够支持删除操作;在GridView 控件中,需要添加HypeLink 列进行页面跳转;当治理人员单击【修改】连接时,就能够跳转到新闻修改页面进行新闻修改,而无需关怀新闻修改页面的开发和保护;25.4.6 新闻分类治理页面新闻分类治理页面用于治理新闻分类,治理员可以在新闻分类治理页面进行新闻分类的添加和删除,在新闻分类的治理和添加页面中,同样可以使用ASP.NET 3.5 供应的 ListView 控件进行分页、 添加、修改、删除等操作,示例代码见光盘中源代码第 25 章 25-125-1adminclassmanage.aspx;ListView 控件能够供应数据的插入、更新和删除等功能,对于简洁的数据操作可以使用 ListView 控件进行功能实现,而假如需要复杂的数据操作和页面布局,使用 ListView 控件就不能很好的完成;ListView 控件通常情形下可以使用到数据较少,数据字段较短的情形下,假如对页面布局要求不是很高,也可以使用 ListView 控件;25.5 代码实现在新闻模块开发中包含了许多的页面,这些页面有些可以使用控件进行实现,而有些需要使用编程的方法进行代码实现,例如登录时的身份验证,新闻模块中的新闻发布甚至是新闻显示和生成静态等功能;这些功能没有现有的控件供应功能实现,而需要开发人员进行代码实现;25.5.1 导航菜单配置在后台治理的框架集中,可以配置导航菜单进行页面跳转,治理人员可以通过导航菜单进行页面的治理和跳转操作;当治理员单击导航菜单上的新闻治理时,就应当在主工作区中间显示新闻治理页面而607 名师归纳总结 - - - - - - -第 10 页,共 19 页精选学习资料 - - - - - - - - - 不会刷新其他页面,同样当治理员点击其他操作时,会跳转到不同的页面;导航菜单示例代码见光盘中源代码 第 25 章25-125-1adminleft.aspx ;Left.aspx 页面代码使用了 TreeView 控件中节点的 NavigateUrl 属性配置了单击该节点时应当跳转的页面,并使用了节点的 Target 属性进行了连接应当跳转的框架集;留意:在超链接中包含 target 属性,而 TreeView 控件同样包含 Target 属性;在框架集中,需要指定相应的连接所需要跳转的框架,否就跳转的框架会在自身页面中执行;25.5.2 身份验证页面在治理员操作之前,第一需要进行身份验证,假如治理员是合法的用户,那么系统就能够使治理员进行添加和删除等操作;假如系统验证操作人员不是合法用户,那么就不应当为用户给予权限,并阻挡用户的登录和治理操作;打开登录页面,双击按钮编写相应的登录大事,示例代码如下所示;protected void Button1_Clickobject sender, EventArgs e try SqlConnection 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='" + TextBox2.Text + "'" /创建 SQL SqlDataAdapter da = new SqlDataAdapterstrsql, con; /创建适配器DataSet ds = new DataSet; /创建数据集int count = da.Fillds, "table" /填充数据集if count > 0 /假如存在用户 Session"admin" = TextBox1.Text; /配置一个 Session Response.Redirect"default.aspx" /页面跳转 else Label1.Text = " 无法登录 ,请检查用户名和密码" /提示无法登录 catch Label1.Text = " 无法进行数据连接" /抛出反常 上述代码使用了 ADO.NET 中的数据对象进行数据操作,其操作和登录控件一样,在数据库中查询相应的信息,假如查询的结果大于 能够进行登录,而假如查询的结果小于0 就说明该查询在数据库中是有效的,也就是说存在这样一个治理员 0 就说明不存在相应的治理员;在治理页面的各个页面都需要进行用户身份判定,当治理员登录胜利后,系统会配置一个 Session对象给用户,假如治理员操作超时或者操作者是一个非法用户,那么就没有 Session 对象;在各个页面判定 Session 对象是否存在,就能够判定是否是合法的治理员,示例代码如下所示;if Session"admin" = null /假如不为治理员608 名师归纳总结 - - - - - - -第 11 页,共 19 页精选学习资料 - - - - - - - - - Response.Redirect"login.aspx" /登录跳转 假如相应的Session 对象为空,就说明正在操作的用户不具备治理权限,就应当跳转到login.aspx页面进行重新进行登录操作;25.5.3 新闻发布页面在新闻发布页面,治理员只需要在相应的字段进行新闻内容的填写,包括新闻的标题、内容、作者等就能够进行新闻的发布;对于非静态生成的新闻发布而言,只需要进行数据的插入即可,示例代码如下所示;protected void Page_Loadobject sender, EventArgs e if Session"admin" = null /假如不为治理员 Response.Redirect"login.aspx" /登录跳转 TextBox2.Text = DateTime.Now.ToString; /初始化字段 protected void Button1_Clickobject sender, EventArgs e try SqlConnection con = new SqlConnection"Data Source=local; con.Open; Initial Catalog=news;Integrated Security=True" /创建连接/打开连接string strsql = "insert into news title,time,author,content,weather,level,hits,classname values '" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox5.Text + "','" + TextBox4.Text + "','" + DropDownList1.Text + "',0,'" + DropDownList2.Text + "'" /SQL 语句SqlCommand cmd = new SqlCommandstrsql, con; /创建 Command cmd.ExecuteNonQuery; /执行 SQL 语句Response.Redirect"manage.aspx" /页面跳转 catchException ee Response.Writeee.ToString; /抛出反常 新闻发布页面只需要执行相应的SQL 语句进行数据插入即可,假如新闻发布只需要进行动态读取,那么只需要进行静态插入新闻即可,而不需要进行模板解析操作;假如需要生成静态页面,那么就需要 进行模板编写再生成纯静态页面;25.5.4 静态生胜利能静态生成听上去特别的复杂,但是其实静态生成特别的简洁;当治理员发布一条新闻,就会在数据 库中插入数据,数据插入后就应当解析模板进行静态生成;静态生成的是一个文件,这个文件可以是一609 名师归纳总结 - - - - - - -第 12 页,共 19 页精选学习资料 - - - - - - - - - 个.html 文件或者 .shtml 文件;在生成文件之前,可以运行以下代码,示例代码如下所示;protected void Page_Loadobject sender, EventArgs e if .IsPostBack /判定加载 string str = "<b>*title*</b>" /模板代码string database = " 新闻标题 " /数据库字段string output = str.Replace"*title*", database; /替换操作Response.Writeoutpu