分享

在网站内加入RSS功能

 游戏人间 2007-04-11
RSS具有实现成本低、推广速度快的优点,已成为很多报纸媒介电子网站中的一项重要推广技术。本节将介绍如何在网站中实现RSS功能,此功能主要包括两部分:订阅功能和提供阅读器工具功能。本节的讲解流程如图5-7所示。

 

图5-7  站点内加入RSS功能讲解流程图

5.4.1  使用Microsoft提供的RSS工具包

为了让用户可以在ASP.NET 2.0中方便地使用RSS技术,Microsoft提供了一个RSS工具包,使用户可以简单地实现RSS的订阅和阅读功能。

这个工具包提供了“RssDataSource”和“RssHyperLink”两个控件,开发人员通过对两个控件的拖曳,就可以轻松实现站点的RSS功能。

声明

本工具全名为“RssToolkit-1-0-0-1”,支持C#语言。读者可从Microsoft站点下载。

下面将介绍如何把工具包添加到VS 2005的工具箱中。

(1)打开VS 2005,新建一个网站“WebRSS”。

(2)打开“Default.aspx”页面,切换到设计视图,此时工具箱为可用状态。

(3)右击工具箱中的“常规”选项卡,在弹出的菜单中,单击“选择项”菜单命令,弹出“选择工具箱项”对话框,如图5-8所示。

图5-8  选择“工具箱”对话框

(4)单击“浏览”按钮,打开文件搜索对话框,如图5-9所示。

图5-9  文件搜索对话框

(5)在“查找范围”下拉框中,找到工具包所在的文件夹下的“bin”文件夹,并选中文件夹中的“RssToolkit.dll”文件。

(6)单击“打开”按钮,系统回到“选择工具箱项”对话框,此时系统自动选中dll文件中带的两个控件。

(7)单击“确定”按钮,此时在“常规”选项卡中,多了两个控件:“RssDataSource”和“RssHyperLink”。

至此,工具控件已经加载完毕,可以在VS 2005中使用Microsoft提供的RSS工具包了。

5.4.2  一个简单的RSS阅读器

本节将使用ASP.NET 2.0提供的数据控件,通过RSS工具箱中的“RssDataSource”数据源控件,实现一个只有一列的网格频道列表,并通过导航的方式显示频道的内容。具体步骤如下。

(1)在网站根目录下,添加一个Web窗体“SimpleReader”。

(2)切换到设计视图,将一个数据控件“DataList”控件拖曳到界面中。

(3)再将一个数据源控件“RssDataSource”控件拖曳到界面中。

(4)在“RssDataSource”控件的任务列表中,只有一项“配置数据源”,单击此菜单命令,弹出地址输入对话框,如图5-10所示。

图5-10  输入RSS地址对话框

(5)在地址文本框内,输入“http://rss.msnbc./id/3032091/device/rss/rss.xml”,此处提供一个标准的RSS文件,并提供多个文章项。

(6)单击“OK”按钮,返回到设计视图。

(7)编辑数据控件“DataList”的绑定项,具体设置如代码清单5-3所示。注意此处已经通过属性“DataSourceID”,将“DataList”控件的数据源绑定到“RssDataSource”控件上。

代码清单5-3  DataList控件的数据源绑定设置

        <asp:DataList ID="DataList1" runat="server"  DataSourceID="RssDataSource1>

                    <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor= "White" />

            <SelectedItemStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor= "#333333" />

            <ItemTemplate>

                <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl=‘<%# Eval("link") %>‘ Text=‘<%# Eval("title") %>‘></asp:HyperLink>

            </ItemTemplate>

            <AlternatingItemStyle BackColor="White" />

            <ItemStyle BackColor="#E3EAEB" />

            <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />

        </asp:DataList>

文本框:  
图5-11  简单阅读器运行效果

(8)此时RSS的读取地址和数据控件的绑定内容都已经设置完毕。按“Ctrl+S”键保存页面的设计。

(9)将此页设计为起始页,按F5键运行程序,测试能否正确显示订阅的RSS新闻列表,运行结果如图5-11所示。

5.4.3  一个复杂的RSS阅读器

上一小节主要讲解了一个简单的阅读器的制作过程,本节将通过一个复杂的数据控件“GridView”,实现一个频道列表网格,其中列出频道的主题、链接和描述等信息,并采用数据源后绑定的技术为“GridView”控件配置数据源。具体实现步骤如下。

(1)在网站根目录下,添加一个Web窗体“ComplexRSS”。

(2)切换到设计视图,将一个“GridView”控件拖曳到界面中,并设计其样式,具体样式如代码清单5-4所示。因为采用数据源后绑定的技术,此处不需为“GridView”控件配置数据源。

代码清单5-4  GridView的样式配置源HTML代码

        <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor= "#333333" GridLines="None">

            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />

            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />

            <EditRowStyle BackColor="#999999" />

            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor= "#333333" />

            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign= "Center" />

            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />

            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />

        </asp:GridView>

(3)设计完界面后,需要编写实现绑定的代码,此时要用到RSS工具的类库,将其添加到此站点中。右键单击网站根目录,在弹出的快捷菜单中,选择“添加引用”菜单命令,弹出“添加引用”对话框,如图5-12所示。

(4)切换到“浏览”选项卡,如图5-13所示。

(5)通过“查找范围”下拉框,找到RSS工具所在的文件夹“RssToolkit-1-0-0-1”,选择其中的文件夹“bin”,选中其中的文件“RssToolkit.dll”。

(6)单击“确定”按钮,在网站根目录下,多了一个“Bin”文件夹,其中包含一个文件,即“RssToolkit.dll”。

(7)对类文件的引用已经完成,现在使用类提供的方法。按F7键进入“ComplexRSS”页面的代码界面。

图5-12  “添加引用”对话框

图5-13  “浏览”选项卡界面

(8)必须先添加对RSS工具所在的命名空间的引用,语法是:“Using RssToolkit;”。

(9)在“Page_Load”事件中,调用RSS工具的方法,实现:GridView,控件的数据源绑定,具体实现代码如清单5-5所示。

代码清单5-5  GridView的数据源后绑定代码

using RssToolkit;

public partial class ComplexRSS : System.Web.UI.Page

{

      protected void Page_Load(object sender, EventArgs e)

      {

           //创建一个频道

           GenericRssChannel c = GenericRssChannel.LoadChannel("http://blog.csdn. net/ championchen79/category/197094.aspx/rss");

           //为GridView绑定数据源

           //数据源来自频道中的所有项目

           GridView1.DataSource = c.SelectItems();

           GridView1.DataBind();

     }

}

(10)全部完成后,按“Ctrl+S”键保存所做的设计。

(11)将此页设置为起始页,按F5键运行程序,测试网格绑定的频道列表是否正常导航,最终运行界面如图5-14所示。

图5-14  复杂阅读器运行界面

5.4.4  让站点提供订阅功能

RSS工具包总共提供了两个控件,一个是“RssDataSource”,在简单阅读器的例子中,已经介绍了其使用方法;另一个是“RssHyperLink”,此控件主要用来为站点提供订阅功能。本节将通过介绍此控件来逐步完成站点的订阅功能,具体步骤如下。

(1)要在站点中实现订阅功能,必须提供允许用户订阅的功能列表,本节手工编写两个频道,提供的内容是前面创建的两个阅读器的RSS订阅。

(2)在网站根目录下,添加一个“一般处理程序”文件,命名为“Sample.ashx”。处理程序主要是使用继承自“IHttpHandler”接口的Web处理类,完成各种文件的转换,并让Web应用程序识别这些文件。

(3)本例使用的处理接口由RSS工具提供,所以必须在文件内引用工具的命名空间“RssToolkit”,最后添加频道的处理内容,如代码清单5-6所示。在清单中有一个频道和两个项。

代码清单5-6  示例RSS文件的处理程序

<%@ WebHandler Language="C#" Class="Sample" %>

using System;

using System.Web;

using RssToolkit;

public class Sample :GenericRssHttpHandlerBase

{

     protected override void PopulateChannel(string channelName, string userName)

     {

          //添加频道

          Channel["title"] = "Sample Channel";

          //如果频道名称不为空

          if (!string.IsNullOrEmpty(channelName))

          {

                 //设置频道名称

                 Channel["title"] += " ‘" + channelName + "‘";

          }

          //如果访问用户名不为空

          if (!string.IsNullOrEmpty(userName))

          {

                //设置用户名名称

                Channel["title"] += " (generated for " + userName + ")";

          }

          //设置频道的默认其他属性

          //此处是简单阅读器的RSS

          Channel["link"] = "~/Default.aspx";

          Channel["description"] = "Channel For  Test in ASP.NET RSS";

          Channel["ttl"] = "10";

          Channel["name"] = channelName;

          Channel["user"] = userName;

          //定义项

          GenericRssElement item;

          //创建一个频道内的项

          item = new GenericRssElement();

          //为项的基本属性赋值

          item["title"] = "Complex";

          item["description"] = "Complex RSS using RssDataSource";

          item["link"] = "~/ComplexRSS.aspx";

          //将项添加到频道内

          Channel.Items.Add(item);

          //创建一个频道内的项

          item = new GenericRssElement();

          //为项的基本属性赋值

          item["title"] = "Simple";

          item["description"] = "Simple RSS is tested";

          item["link"] = "~/SimpleReader.aspx";

          //将项添加到频道内

          Channel.Items.Add(item);

     }

}

(4)打开“Default.aspx”页面,将一个“RssHyperLink”控件拖曳到设计视图。

(5)按F4键出现其属性窗口,修改属性“NavigateUrl”为“~/Sample.ashx”。

(6)按“Ctrl+S”键保存所有的设计。

(7)按F5键运行程序,测试网站的订阅功能。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多