APP下载

基于ASP.NET热点新闻排行的设计与实现

2015-05-30袁芳

智能计算机与应用 2015年6期
关键词:热点新闻

袁芳

摘要:网页开发过程中存在大量重复性的设计和代码编写,这直接影响到网站的开发效率。本文基于.NET开发平台,主要论述了以热点新闻排行为例,在ASP.NET中如何自定义用户控件,并介绍了两种制作热点新闻排行的方法,从而提高开发新闻发布系统网站效率。

关键词:热点新闻;新闻排行;APS.NET

Abstract : The process of website development has a large number of repetive design and code writing,which directly affects the website's development efficiency. Based on.NET development platform, this paper mainly discusses the hot news ranking as an example,which introduce how to customize user controls in ASP.NET and two methods for making hot news, so as to improve the efficiency of the development of the news release system.

Key words: Hot News; News Ranking; APS.NET

0 引言

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

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

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

//通过Web.Config配置文件的ConnectionStrings节点中名称为“Newsconn”中获取数据连接语句,并创建数据库连接对象

SqlConnection NewsConn=new SqlConnection(ConfigurationManager.ConnectionStrings["Newsconn"].ConnectionString());

//通过数据适配器对象sdaNews填充数据集对象dsNews

SqlDataAdapter sdaNews = new SqlDataAdapter("select top 6 * from NewsTable Order By Clicks,PubDate DESC", Newsconn);

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]["Title"].ToString();

if (Title.Length >= 15) {

Title = Title.Substring(0, 15) + "…";

}

//i對2求余数,判断奇偶行,新闻标题显示不同的背景色

if (i % 2 == 0){

// Literal控件与label控件相似,但Literal控件不允许对所显示的文本应用到样式,可以通过设置其Text属性,以编程方式来控制在该控件中显示的文本

LiteralNews.Text += "

" + (i + 1).ToString() + "
" + ""; }

Else {

LiteralNews.Text += "

" + (i + 1).ToString() + "
" + ""; }

5 结束语

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

参考文献:

[1]明日科技.Asp.net从入门到精通[M].北京:清华大学出版社,2014.

[2]沈士根,汪承焱,许小东著. Web程序设计:ASP.NET实用网站开发[M]. 北京:清华大学出版社,2009.

[3]王军伟,李建民,林振荣. ASP.NET用户控件技术在新闻列表页面中的研究与应用[J]. 计算机与现代化,2010(4):107-110.

猜你喜欢

热点新闻
社会热点新闻全媒体融合报道的实践和启示——以东阳日报关注横店通航发展为例
热点新闻事件中网络流行语产生的原因及其传播效应
做精做深热点新闻,提升地方媒体影响力
热点新闻在大学生中的传播及其对思政工作的启示研究
浅谈如何做好热点新闻