RSS具有實現(xiàn)成本低、推廣速度快的優(yōu)點,已成為很多報紙媒介電子網站中的一項重要推廣技術。本節(jié)將介紹如何在網站中實現(xiàn)RSS功能,此功能主要包括兩部分:訂閱功能和提供閱讀器工具功能。本節(jié)的講解流程如圖5-7所示。
圖5-7 站點內加入RSS功能講解流程圖 5.4.1 使用Microsoft提供的RSS工具包為了讓用戶可以在ASP.NET 2.0中方便地使用RSS技術,Microsoft提供了一個RSS工具包,使用戶可以簡單地實現(xiàn)RSS的訂閱和閱讀功能。 這個工具包提供了“RssDataSource”和“RssHyperLink”兩個控件,開發(fā)人員通過對兩個控件的拖曳,就可以輕松實現(xiàn)站點的RSS功能。
下面將介紹如何把工具包添加到VS 2005的工具箱中。 (1)打開VS 2005,新建一個網站“WebRSS”。 (2)打開“Default.aspx”頁面,切換到設計視圖,此時工具箱為可用狀態(tài)。 (3)右擊工具箱中的“常規(guī)”選項卡,在彈出的菜單中,單擊“選擇項”菜單命令,彈出“選擇工具箱項”對話框,如圖5-8所示。 圖5-8 選擇“工具箱”對話框 (4)單擊“瀏覽”按鈕,打開文件搜索對話框,如圖5-9所示。 圖5-9 文件搜索對話框 (5)在“查找范圍”下拉框中,找到工具包所在的文件夾下的“bin”文件夾,并選中文件夾中的“RssToolkit.dll”文件。 (6)單擊“打開”按鈕,系統(tǒng)回到“選擇工具箱項”對話框,此時系統(tǒng)自動選中dll文件中帶的兩個控件。 (7)單擊“確定”按鈕,此時在“常規(guī)”選項卡中,多了兩個控件:“RssDataSource”和“RssHyperLink”。 至此,工具控件已經加載完畢,可以在VS 2005中使用Microsoft提供的RSS工具包了。 5.4.2 一個簡單的RSS閱讀器本節(jié)將使用ASP.NET 2.0提供的數(shù)據(jù)控件,通過RSS工具箱中的“RssDataSource”數(shù)據(jù)源控件,實現(xiàn)一個只有一列的網格頻道列表,并通過導航的方式顯示頻道的內容。具體步驟如下。 (1)在網站根目錄下,添加一個Web窗體“SimpleReader”。 (2)切換到設計視圖,將一個數(shù)據(jù)控件“DataList”控件拖曳到界面中。 (3)再將一個數(shù)據(jù)源控件“RssDataSource”控件拖曳到界面中。 (4)在“RssDataSource”控件的任務列表中,只有一項“配置數(shù)據(jù)源”,單擊此菜單命令,彈出地址輸入對話框,如圖5-10所示。 圖5-10 輸入RSS地址對話框 (5)在地址文本框內,輸入“http://rss.msnbc./id/3032091/device/rss/rss.xml”,此處提供一個標準的RSS文件,并提供多個文章項。 (6)單擊“OK”按鈕,返回到設計視圖。 (7)編輯數(shù)據(jù)控件“DataList”的綁定項,具體設置如代碼清單5-3所示。注意此處已經通過屬性“DataSourceID”,將“DataList”控件的數(shù)據(jù)源綁定到“RssDataSource”控件上。 代碼清單5-3 DataList控件的數(shù)據(jù)源綁定設置 <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> (8)此時RSS的讀取地址和數(shù)據(jù)控件的綁定內容都已經設置完畢。按“Ctrl+S”鍵保存頁面的設計。 (9)將此頁設計為起始頁,按F5鍵運行程序,測試能否正確顯示訂閱的RSS新聞列表,運行結果如圖5-11所示。 5.4.3 一個復雜的RSS閱讀器上一小節(jié)主要講解了一個簡單的閱讀器的制作過程,本節(jié)將通過一個復雜的數(shù)據(jù)控件“GridView”,實現(xiàn)一個頻道列表網格,其中列出頻道的主題、鏈接和描述等信息,并采用數(shù)據(jù)源后綁定的技術為“GridView”控件配置數(shù)據(jù)源。具體實現(xiàn)步驟如下。 (1)在網站根目錄下,添加一個Web窗體“ComplexRSS”。 (2)切換到設計視圖,將一個“GridView”控件拖曳到界面中,并設計其樣式,具體樣式如代碼清單5-4所示。因為采用數(shù)據(jù)源后綁定的技術,此處不需為“GridView”控件配置數(shù)據(jù)源。 代碼清單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)設計完界面后,需要編寫實現(xiàn)綁定的代碼,此時要用到RSS工具的類庫,將其添加到此站點中。右鍵單擊網站根目錄,在彈出的快捷菜單中,選擇“添加引用”菜單命令,彈出“添加引用”對話框,如圖5-12所示。 (4)切換到“瀏覽”選項卡,如圖5-13所示。 (5)通過“查找范圍”下拉框,找到RSS工具所在的文件夾“RssToolkit-1-0-0-1”,選擇其中的文件夾“bin”,選中其中的文件“RssToolkit.dll”。 (6)單擊“確定”按鈕,在網站根目錄下,多了一個“Bin”文件夾,其中包含一個文件,即“RssToolkit.dll”。 (7)對類文件的引用已經完成,現(xiàn)在使用類提供的方法。按F7鍵進入“ComplexRSS”頁面的代碼界面。 圖5-12 “添加引用”對話框 圖5-13 “瀏覽”選項卡界面 (8)必須先添加對RSS工具所在的命名空間的引用,語法是:“Using RssToolkit;”。 (9)在“Page_Load”事件中,調用RSS工具的方法,實現(xiàn):GridView,控件的數(shù)據(jù)源綁定,具體實現(xiàn)代碼如清單5-5所示。 代碼清單5-5 GridView的數(shù)據(jù)源后綁定代碼 using RssToolkit; public partial class ComplexRSS : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //創(chuàng)建一個頻道 GenericRssChannel c = GenericRssChannel.LoadChannel("http://blog.csdn. net/ championchen79/category/197094.aspx/rss"); //為GridView綁定數(shù)據(jù)源 //數(shù)據(jù)源來自頻道中的所有項目 GridView1.DataSource = c.SelectItems(); GridView1.DataBind(); } } (10)全部完成后,按“Ctrl+S”鍵保存所做的設計。 (11)將此頁設置為起始頁,按F5鍵運行程序,測試網格綁定的頻道列表是否正常導航,最終運行界面如圖5-14所示。 圖5-14 復雜閱讀器運行界面 5.4.4 讓站點提供訂閱功能RSS工具包總共提供了兩個控件,一個是“RssDataSource”,在簡單閱讀器的例子中,已經介紹了其使用方法;另一個是“RssHyperLink”,此控件主要用來為站點提供訂閱功能。本節(jié)將通過介紹此控件來逐步完成站點的訂閱功能,具體步驟如下。 (1)要在站點中實現(xiàn)訂閱功能,必須提供允許用戶訂閱的功能列表,本節(jié)手工編寫兩個頻道,提供的內容是前面創(chuàng)建的兩個閱讀器的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; //創(chuàng)建一個頻道內的項 item = new GenericRssElement(); //為項的基本屬性賦值 item["title"] = "Complex"; item["description"] = "Complex RSS using RssDataSource"; item["link"] = "~/ComplexRSS.aspx"; //將項添加到頻道內 Channel.Items.Add(item); //創(chuàng)建一個頻道內的項 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鍵出現(xiàn)其屬性窗口,修改屬性“NavigateUrl”為“~/Sample.ashx”。 (6)按“Ctrl+S”鍵保存所有的設計。 (7)按F5鍵運行程序,測試網站的訂閱功能。 |
|