asp论文

您当前的位置:学术堂 > 计算机论文 > asp论文 >

新闻发布系统中设计制作热点新闻排行的方法

来源:学术堂 作者:韩老师
发布于:2016-01-09 共3560字

  引 言

  近十多年来,随着计算机与网络技术的迅猛发展和风行普及,互联网已成为大众获取信息的重要来源,其中浏览新闻是重要内容之一.很多新闻网站为了方便网民能快速便捷地了解国内外最新最热新闻,在网站中都提供了一个版块,用于显示热点新闻,并且热点新闻版块大都会在多个页面中出现.为了提高新闻发布系统网站的开发效率,重点推荐的一个比较科学的方法就是开发用户自定义控件,用来显示热点新闻.本文即针对如何自定义用户控件,探讨论述在新闻发布系统中设计制作热点新闻排行的方法.

  1 用户控件概述

  在利用 ASP. NET 技术开发动态网页中,虽然 ASP. NET提供的 Web 服务器控件具有十分强大的功能,但在实际开发应用中,遇到的问题总是复杂多变的,为了满足各式各样的特殊功能需求,除了使用 Web 服务器控件外,还可以即如创建 ASP. NET 页面一样来创建可重复使用的自定义控件,这些控件则称为用户控件.

  在一些典型情况下,常常需要创建自己定义的用户控件,如有时需要实现完成 Web 服务器控件没有提供的功能,有时可能需要提取多个网页中相同的用户界面来统一网页的显示风格等.创建用户控件的优点,一是可以在多个页面中重复使用用户控件,从而省去了许多重复性的工作,提高网页开发效率,另一个就是网页内容需求发生改变时,其对应的要修改部分若是用户控件的执行代码的话,只需修改用户控件,其它添加、使用该用户控件的网页将会随即发生一体联动修改,从而使得网页的设计以及维护更趋简单易行[1].

  2 用户控件的创建

  用户控件是一种复合控件,其文件与. aspx 文件相似,具有用户界面和代码,同时还是以. ascx 为扩展名存储的文本文件.创建用户控件的方式有多种,对其重点表述如下.

  ( 1) 一种是可以采用与创建 ASP. NET 网页相似的方式而创建用户控件,可以向用户控件文件中添加所需 Web 服务器控件和标记,并按需求定义分别添加 Web 服务器控件的属性和方法,其后就可以将该用户控件嵌入 ASP. NET 网页中充当一个单元模块.

  ( 2) 第二种是将 ASP. NET 网页更改为一个用户控件.特别地,这种方法是针对于已经开发完成的 ASP. NET 网页并需要在整个 Web 应用程序中访问其功能的情况下才会使用.

  ( 3) 第三种是自定义编写一个类,该类从 Control 或WebControl 派生[2].需要注意的是,创建了用户控件后,用户控件文件并不能作为独立文件来操作运行,必须像处理Web 服务器控件一样,添加到其他 ASP. NET 页中才能使用,因而也不能直接作为一个网页来进行整体显示.

  虽然创建用户控件的方法已有多种,研究比较之后,论文选用了通过 Visual Studio 2010 开发环境来创建用户控件,这也是最常用的一种方法.具体实现过程为: 首先要在新闻发布系统网站项目上创建用户控件,为了便于网站资源的管理,一般把用户控件文件和页面文件分别放在不同的文件夹,从而实现良好有效区分.在管理用户控件文件夹上选中并单击右键,在弹出的快捷菜单中选择"添加新项"菜单命令,会弹出"添加新项"对话框,可于其中择取"Web 用户控件"选项,并为其命名为 HotspotNews. ascx.在此基础上,单击"添加"按钮,即可将用户控件添加到网站项目中.

  3 新闻数据表设计

  要实现对新闻发布系统的多项具体操作,其关键技术就是设计研发数据库及合理确定访问数据库的技术方法.要制作热点新闻排行榜,在数据库新闻表中字段的设计将至关重要.本案例在设计新闻表中即用 Clicks 字段来记录某条新闻的访问次数,新闻表的表结构说明如表 1 所示.
  
  4 设计热点新闻排行的用户控件

  在网站项目的用户自定义文件夹中双击 HotspotNews.ascx 用户控件文件,插入一张两行一列表来构建整体布局:

  从工具箱中的数据栏,选中 DataList 控件将其拖到第二行的单元格中.Datalist 控件与 GridView、DetailsView 等数据绑定控件不同,允许自定义各种模板,而且仅能自动生成 Item-Template 模板,更要自行编写排序、分页、编辑、删除功能代码.Datalist 控件适合开发人员希望得到更多灵活性布局时使用,其最突出特点就是必须要通过模板来定义数据的显示格式.本文案例使用 Datalist 控件,分别设置 ItemTemplate 项和 AlternatingItemTem plate 交替项目模板,在每个项中插入表格布局,拖放一 HyperLink 控件,设置其 Text 属性值为"< %# Eval( " Title") % > ",NavigateUrl 属性值为"< % #Eval( " ID" ," ShowNews. aspx? id = { 0} " ) % > "完成数据绑定表达式的编写,在交替项 AlternatingItemTemplate 模板中设置表格背景色为某颜色值,使得新闻标题列表可最终呈现交替显示.

  本文显示热点新闻排行列表方法是从新闻表 NewsTable中获取的点击率最高的前 6 条最新的新闻记录.在 Hotspot-News. ascx. cs 文件中,需要编写访问新闻表,抽取 Clicks 字段值最高的前 6 条记录,并利用按新闻上传日期字段降序排列的数据库的操作方法,获得降序排列效果,再将其并绑定到Datalist 控件进行完整显示.具体实现代码如下.

  / / 通过 Web. Config 配置文件的 ConnectionStrings 节点中名称为"Newsconn"中获取数据连接语句,并创建数据库连接对象
  
  SqlConnection NewsConn = new SqlConnection ( Configura-tionManager. ConnectionStrings[" Newsconn"]. ConnectionString( ) ) ; / /通过数据适配器对象 sdaNews 填充数据集对象dsNewsSqlDataAdapter sdaNews = new
  SqlDataAdapter ( " selecttop 6 * from NewsTable Order By Clicks,PubDate DESC" ,Ne-wsconn) ;
  DataSet dsNews = new DataSet( ) ;
  sdaNews. Fill( dsNews) ;
  / / Datalist 控件数据源设置以及绑定
  DLNewsHotSpot. DataSource = dsNews. Table[0];
  DLNewsHotSpot. DataBind( ) ;
  
  当用户自定义控件研发完成后,就可以像 ASP. NET 工具箱里控件一样把 HotspotNews 用户控件拖到. aspx 页面中,并且可以重复使用,从而显著提高编程效率,其运行结果如图 1 所示.

  由图 1 可见,其新闻排行显示效果仍然未臻理想,比如当新闻标题文字过长,显示新闻标题有点乱,新闻标题前没有序数排列.下面则用 Literal 控件显示热点新闻标题,并对每条热点新闻标题前均加增了序号,新闻标题文字长度控制在 15 字以下,编写的代码只需将前段代码最后两句改添为如下代码即可,并设置超链接样式,运行效果如图 2 所示,改进后的效果方式将更加美观.

  / / 用 for 循环语句设置每条新闻标题前序号的背景色,前 4 条的背景颜色不一样,后面序号背景色是一样
  for ( int i = 0; i < dsNews. Tables[0]. Rows. Count; i +
  string bc = " " ;
  switch ( i) {
  case 0: bc = " #CC0000" ; break;
  case 1: bc = " #FF0000" ; break;
  case 2: bc = " #FF5353" ; break;
  case 3: bc = " #FFAC84" ; break;
  default: bc = " #FFCCCC" ; break;
  }

  / / 当新闻标题的文字超过 15 个字符时,用 Substring 方法截取前 15 个字符,后面连接"…"省略号
  string Title = dsNews. Tables[0]. Rows[i][" Ti-tle"]. ToString( ) ;
  if ( Title. Length > = 15) {
  Title = Title. Substring( 0,15) + " …" ;
  }

  / / i 对 2 求余数,判断奇偶行,新闻标题显示不同的背景色if ( i % 2 = = 0) {/ / Literal 控件与 label 控件相似,但 Literal 控件不允许对所显示的文本应用到样式,可以通过设置其 Text 属性,以编程方式来控制在该控件中显示的文本
  LiteralNews. Text + = " < div style = \ " color: #FFFFFF; width: 12px;
  height: 12px; float: left; background - color: " + bc + " ;font - size: 10px; text - align: center; " \ > < b > " + ( i + 1) .ToString( ) + " < / b > < / div > " + " < div > < a href = \ " # \ "
  onclick = \ " javascript: window. open( 'ShowInfo. aspx? id= " + ds. Tables[0]. Rows[i][" Id"]. ToString( ) + " ') ; \ "> " + Title + " < / a > < / div > " ; }
  Else {
  LiteralNews. Text + = " < div style = \ " color: #FFFFFF;width: 12px; height: 12px; float: left; background - color: " + bc+ " ; font - size: 10px; text - align: center; \ " > < b > " + ( i+ 1) . ToString( ) + " < / b > < / div > " + " < div style = \ "background - color: #FFFF99; \ " > < a href = \ " # \ " onclick= \ " javascript: window. open ( 'ShowInfo. aspx? id = " +dsNews. Tables[0]. Rows[i][" Id"]. ToString( ) + " ') ; \ "> " + Title + " < / a > < / div > " ; }

  5 结束语

  用户控件是 ASP. NET 控件的扩展,能够把常用的界面和逻辑封装为一个控件,这种技术可以让程序员根据自己的需要开发出自定义的控件.在 Web 应用开发中使用用户控件,不仅可以提高代码的重用性和开发效率,还可以让使用用户控件的网页的显示风格保持一致[3].本文结合用户控件,介绍如何设计和制作热点新闻排行的两种方法,该模块在新闻发布系统网站开发中,使用频率比较高,从而减少重复代码的编写工作,以提高开发效率和系统的可维护性.

  参考文献:

  [1]明日科技. Asp. net 从入门到精通[M]. 北京: 清华大学出版社,2014.
  [2]沈士根,汪承焱,许小东,著. Web 程序设计: ASP. NET 实用网站开发[M]. 北京: 清华大学出版社,2009.
  [3]王军伟,李建民,林振荣. ASP. NET 用户控件技术在新闻列表页面中的研究与应用[J]. 计算机与现代化,2010( 4) : 107 -110 .

相关内容推荐
相关标签:新闻论文
返回:asp论文