|
 |
栏目导栏 |
|
| |
|
|
|
|
 |
资料搜索 |
|
| |
|
|
|
|
 |
热门文章 |
|
| |
|
|
|
|
 |
最新文章 |
|
| |
|
|
|
| |
| |
|
|
|
|
Rss 是一种描述和同步网站内容的格式,是目前使用最广泛的XML应用。RSS 搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者。发布一个 Rss 文件后,这个 Rss Feed中包含的信息就能直接被其他站点调用,而且由于这些数据都是标准的XML格式,所以也能在其他的终端和服务中使用。 BZmLinux联盟 BZmLinux联盟 在之前我们如果要实现博客的RSS订阅,通常都需要手写代码去生产或读取XML。现在有了RSSToolKit,这一切就变得简单了。你可以使用他在五分钟内实现自己的 Rss 在线阅读器。这篇文章将介绍如何读取站点 Rss 信息。 BZmLinux联盟 BZmLinux联盟 开发环境:VS2005 + RSSToolKit BZmLinux联盟 BZmLinux联盟 一、首先我们需要建立一个ASP.NET AJAX站点 BZmLinux联盟 BZmLinux联盟 BZmLinux联盟 二、引入RssToolKit到项目中,建好的项目如下(CSS和图片文件可以使用我压缩文档里的) BZmLinux联盟 BZmLinux联盟 三、可以开始写代码了 BZmLinux联盟 1.首先需要一个ScriptManager、一个UpdatePanel、一个UpdateProgress。哈哈,都是废话AJAX页面程序大概都需要这些。其他的就是你的要求了。具体的页面代码如下: BZmLinux联盟 1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> BZmLinux联盟 2 BZmLinux联盟 3 <%@ Register Assembly="RssToolkit" Namespace="RssToolkit" TagPrefix="Rss" %> BZmLinux联盟 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> BZmLinux联盟 5 <html xmlns="http://www.w3.org/1999/xhtml"> BZmLinux联盟 6 <head runat="server"> BZmLinux联盟 7 <title>向东博客阅读器|meil.livebaby.cn</title> BZmLinux联盟 8 <link href="CSS/Layout.css" rel="stylesheet" type="text/css" /> BZmLinux联盟 9 BZmLinux联盟 10 <script language="JavaScript" type="text/javascript"> BZmLinux联盟 11 var ls; BZmLinux联盟 12 function ls_onClk(itemNumber) { BZmLinux联盟 13 BZmLinux联盟 14 if(ls == null) ls = $get("List0"); BZmLinux联盟 15 BZmLinux联盟 16 ls.className = ""; BZmLinux联盟 17 ls = $get("list" + itemNumber); BZmLinux联盟 18 ls.className = "current"; BZmLinux联盟 19 return true; BZmLinux联盟 20 } BZmLinux联盟 21 </script> BZmLinux联盟 22 BZmLinux联盟 23 </head> BZmLinux联盟 24 <body> BZmLinux联盟 25 <form id="form1" runat="server"> BZmLinux联盟 26 <asp:ScriptManager ID="ScriptManager1" runat="server" /> BZmLinux联盟 27 <div id="content-header"> BZmLinux联盟 28 <h1><asp:HyperLink ID="HyperLink1" runat="server" Text="向东" Target="_blank" NavigateUrl="http://meil.livebaby.cn/index.html"></asp:HyperLink> BZmLinux联盟 29 博客阅读器</h1> BZmLinux联盟 30 </div> BZmLinux联盟 31 <div id="content-container"> BZmLinux联盟 32 <div id="content-side1"> BZmLinux联盟 33 <ul class="list-of-links"> BZmLinux联盟 34 <li id="list0" class="current"> BZmLinux联盟 35 <asp:LinkButton ID="lb0" runat="server" CommandArgument="0" OnClientClick="ls_onClk(0);" OnCommand="lnk_cmd">向东博客</asp:LinkButton></li> BZmLinux联盟 36 <li id="list1"> BZmLinux联盟 37 <asp:LinkButton ID="lb1" runat="server" CommandArgument="1" OnClientClick="ls_onClk(1);" OnCommand="lnk_cmd">财经博客</asp:LinkButton></li> BZmLinux联盟 38 <li id="list2"> BZmLinux联盟 39 <asp:LinkButton ID="lb2" runat="server" CommandArgument="2" OnClientClick="ls_onClk(2);" OnCommand="lnk_cmd">Flower博客</asp:LinkButton></li> BZmLinux联盟 40 <li id="list3"> BZmLinux联盟 41 <asp:LinkButton ID="lb3" runat="server" CommandArgument="3" OnClientClick="ls_onClk(3);" OnCommand="lnk_cmd">活力宝贝博客网</asp:LinkButton></li> BZmLinux联盟 42 <li id="list4"> BZmLinux联盟 43 <asp:LinkButton ID="lb4" runat="server" CommandArgument="4" OnClientClick="ls_onClk(4);" OnCommand="lnk_cmd">悠悠宝贝的博客</asp:LinkButton></li> BZmLinux联盟 44 <li id="list5"> BZmLinux联盟 45 <asp:LinkButton ID="lb5" runat="server" CommandArgument="5" OnClientClick="ls_onClk(5);" OnCommand="lnk_cmd"><font color="red">向东博客园博客</font></asp:LinkButton></li> BZmLinux联盟 46 <li id="li6"> BZmLinux联盟 47 <asp:LinkButton ID="lb6" runat="server" CommandArgument="6" OnClientClick="ls_onClk(6);" OnCommand="lnk_cmd"><font color="red">博客园</font></asp:LinkButton></li> BZmLinux联盟 48 </ul> BZmLinux联盟 49 </div> BZmLinux联盟 50 <div id="content-main"> BZmLinux联盟 51 <asp:UpdatePanel ID="updateMain" runat="server" UpdateMode="conditional" > BZmLinux联盟 52 <Triggers> BZmLinux联盟 53 <asp:AsyncPostBackTrigger ControlID="lb0" /> BZmLinux联盟 54 <asp:AsyncPostBackTrigger ControlID="lb1" /> BZmLinux联盟 55 <asp:AsyncPostBackTrigger ControlID="lb2" /> BZmLinux联盟 56 <asp:AsyncPostBackTrigger ControlID="lb3" /> BZmLinux联盟 57 <asp:AsyncPostBackTrigger ControlID="lb4" /> BZmLinux联盟 58 <asp:AsyncPostBackTrigger ControlID="lb5" /> BZmLinux联盟 59 <asp:AsyncPostBackTrigger ControlID="lb6" /> BZmLinux联盟 60 </Triggers> BZmLinux联盟 61 <ContentTemplate> BZmLinux联盟 62 <h2><asp:Label ID="lblHeader" runat="server">最新日志</asp:Label></h2> BZmLinux联盟 63 <hr /> BZmLinux联盟 64 <asp:Panel ID="pnlBlog" runat="server"> BZmLinux联盟 65 <Rss:RssDataSource ID="rssDS" runat="server" MaxItems="0" Url=""></Rss:RssDataSource> BZmLinux联盟 66 <asp:DataList ID="lsBlog" runat="server" DataSourceID="rssDS"> BZmLinux联盟 67 <ItemTemplate> BZmLinux联盟 68 <asp:Panel ID="panelHeader" runat="server" Style="cursor: pointer; color: #d61719;width: 100%; display: block;"> BZmLinux联盟 69 <span style="float: left;"><%# Eval("title") %></span> BZmLinux联盟 70 <asp:Image ID="Image1" runat="server" Style="float: right;" ImageUrl="~/images/expand_blue.jpg" /> BZmLinux联盟 71 </asp:Panel> BZmLinux联盟 72 <asp:Panel ID="Panel1" runat="server" Style="margin-top: 3px;width: 100%; background: transparent url(images/blogBack.gif) no-repeat text-top left;"> BZmLinux联盟 73 <%# Eval("description") %> BZmLinux联盟 74 (<asp:HyperLink ID="hlMore" runat="server" NavigateUrl='<%# Eval("link") %>' Target="_blank" Text="更多内容"></asp:HyperLink>) BZmLinux联盟 75 </asp:Panel> BZmLinux联盟 76 <ajaxT:CollapsiblePanelExtender ID="cpe1" runat="server" TargetControlID="Panel1" BZmLinux联盟 77 ExpandControlID="panelHeader" CollapseControlID="panelHeader" SuppressPostBack="true" BZmLinux联盟 78 ImageControlID="Image1" Collapsed="true" ExpandedImage="~/images/collapse_blue.jpg" BZmLinux联盟 79 CollapsedImage="~/images/expand_blue.jpg" /> BZmLinux联盟 80 <hr style="border-bottom: 1px dotted #B2B2B2; margin: 0px;" /> BZmLinux联盟 81 </ItemTemplate> BZmLinux联盟 82 </asp:DataList> BZmLinux联盟 83 </asp:Panel> BZmLinux联盟 84 </ContentTemplate> BZmLinux联盟 85 </asp:UpdatePanel> BZmLinux联盟 86 </div> BZmLinux联盟 87 </div> BZmLinux联盟 88 <asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="0" DynamicLayout="true"> BZmLinux联盟 89 <ProgressTemplate> BZmLinux联盟 90 <div id="updProgress"> BZmLinux联盟 91 <img alt="" src="images/indicator.gif" /> BZmLinux联盟 92 <span>数据获取中</span> BZmLinux联盟 93 </div> BZmLinux联盟 94 </ProgressTemplate> BZmLinux联盟 95 </asp:UpdateProgress> BZmLinux联盟 96 </form> BZmLinux联盟 97 <center><div><a href="http://meil.livebaby.cn">meil.livebaby.cn</a> 程序制作:向东 2007.7</center> BZmLinux联盟 98 </body> BZmLinux联盟 99 </html> BZmLinux联盟 100 BZmLinux联盟 比较重要的是这两部分: BZmLinux联盟 行66:<Rss:RssDataSource ID="rssDS" runat="server" MaxItems="0" Url=""></Rss:RssDataSource> BZmLinux联盟 这就是实现RSS读取的核心了,有了这个标记就实现了RSS读取的一半工作,那剩下的吶? BZmLinux联盟 BZmLinux联盟 看看下面者部分,lnk_cmd 命令实现了RSS数据的重绑定,这样你就可以实时的访问多个RSS地址了。如果你觉得这样还不够灵活,可以加个Textbox,然后用程序去绑定,这样也不错。不过,此次就不实现这个了,有兴趣的朋友可以试试,应该不难。哈哈! BZmLinux联盟 BZmLinux联盟 行35:<asp:LinkButton ID="lb0" runat="server" CommandArgument="0" OnClientClick="ls_onClk(0);" BZmLinux联盟 OnCommand="lnk_cmd">向东博客</asp:LinkButton></li> BZmLinux联盟 1 protected void lnk_cmd(object sender, CommandEventArgs e) BZmLinux联盟 2 { BZmLinux联盟 3 int command = Convert.ToInt32(e.CommandArgument); BZmLinux联盟 4 BZmLinux联盟 5 rssDataBind(command); BZmLinux联盟 6 } BZmLinux联盟 rssDataBind就是绑定的函数,代码是: BZmLinux联盟 1 protected void rssDataBind(int cmd) BZmLinux联盟 2 { BZmLinux联盟 3 switch (cmd) BZmLinux联盟 4 { BZmLinux联盟 5 case 0: BZmLinux联盟 6 rssDS.Url = "http://www.livebaby.cn/blog/u/meil/rss2.xml"; BZmLinux联盟 7 lsBlog.DataBind(); BZmLinux联盟 8 lblHeader.Text = "向东博客"; BZmLinux联盟 9 break; BZmLinux联盟 10 case 1: BZmLinux联盟 11 rssDS.Url = "http://www.livebaby.cn/blog/u/money/rss2.xml"; BZmLinux联盟 12 lsBlog.DataBind(); BZmLinux联盟 13 lblHeader.Text = "财经博客"; BZmLinux联盟 14 break; BZmLinux联盟 15 case 2: BZmLinux联盟 16 rssDS.Url = "http://www.livebaby.cn/blog/u/flower/rss2.xml"; BZmLinux联盟 17 lsBlog.DataBind(); BZmLinux联盟 18 lblHeader.Text = "Flower博客"; BZmLinux联盟 19 break; BZmLinux联盟 20 case 3: BZmLinux联盟 21 rssDS.Url = "http://www.livebaby.cn/blog/rss2.asp"; BZmLinux联盟 22 lsBlog.DataBind(); BZmLinux联盟 23 lblHeader.Text = "活力宝贝博客网"; BZmLinux联盟 24 break; BZmLinux联盟 25 case 4: BZmLinux联盟 26 rssDS.Url = "http://www.livebaby.cn/blog/u/yoyo/rss2.xml"; BZmLinux联盟 27 lsBlog.DataBind(); BZmLinux联盟 28 lblHeader.Text = "悠悠宝贝的博客"; BZmLinux联盟 29 break; BZmLinux联盟 30 case 5: BZmLinux联盟 31 rssDS.Url = "http://www.cnblogs.com/meil/rss"; BZmLinux联盟 32 lsBlog.DataBind(); BZmLinux联盟 33 lblHeader.Text = "向东博客园博客"; BZmLinux联盟 34 break; BZmLinux联盟 35 case 6: BZmLinux联盟 36 rssDS.Url = "http://www.cnblogs.com/rss"; BZmLinux联盟 37 lsBlog.DataBind(); BZmLinux联盟 38 lblHeader.Text = "博客园"; BZmLinux联盟 39 break; BZmLinux联盟 40 default: BZmLinux联盟 41 break; BZmLinux联盟 42 } BZmLinux联盟 43 } BZmLinux联盟 就这么简单 BZmLinux联盟 rssDS.Url = "http://www.livebaby.cn/blog/u/meil/rss2.xml"; BZmLinux联盟 lsBlog.DataBind(); BZmLinux联盟 是不是就如DB数据的绑定。MS的东西虽然结构性不好,但是上手真的好快。 BZmLinux联盟 到底需要多少个Case就看你的需要了。我这里就绑定了六个RSS地址,你还可以更多,但要注意的是一定要和页面上的LinkButton数对应上。 BZmLinux联盟 BZmLinux联盟 最终的C#代码如下: BZmLinux联盟 1 protected void rssDataBind(int cmd) BZmLinux联盟 2 { BZmLinux联盟 3 switch (cmd) BZmLinux联盟 4 { BZmLinux联盟 5 case 0: BZmLinux联盟 6 rssDS.Url = "http://www.livebaby.cn/blog/u/meil/rss2.xml"; BZmLinux联盟 7 lsBlog.DataBind(); BZmLinux联盟 8 lblHeader.Text = "向东博客"; BZmLinux联盟 9 break; BZmLinux联盟 10 case 1: BZmLinux联盟 11 rssDS.Url = "http://www.livebaby.cn/blog/u/money/rss2.xml"; BZmLinux联盟 12 lsBlog.DataBind(); BZmLinux联盟 13 lblHeader.Text = "财经博客"; BZmLinux联盟 14 break; BZmLinux联盟 15 case 2: BZmLinux联盟 16 rssDS.Url = "http://www.livebaby.cn/blog/u/flower/rss2.xml"; BZmLinux联盟 17 lsBlog.DataBind(); BZmLinux联盟 18 lblHeader.Text = "Flower博客"; BZmLinux联盟 19 break; BZmLinux联盟 20 case 3: BZmLinux联盟 21 rssDS.Url = "http://www.livebaby.cn/blog/rss2.asp"; BZmLinux联盟 22 lsBlog.DataBind(); BZmLinux联盟 23 lblHeader.Text = "活力宝贝博客网"; BZmLinux联盟 24 break; BZmLinux联盟 25 case 4: BZmLinux联盟 26 rssDS.Url = "http://www.livebaby.cn/blog/u/yoyo/rss2.xml"; BZmLinux联盟 27 lsBlog.DataBind(); BZmLinux联盟 28 lblHeader.Text = "悠悠宝贝的博客"; BZmLinux联盟 29 break; BZmLinux联盟 30 case 5: BZmLinux联盟 31 rssDS.Url = "http://www.cnblogs.com/meil/rss"; BZmLinux联盟 32 lsBlog.DataBind(); BZmLinux联盟 33 lblHeader.Text = "向东博客园博客"; BZmLinux联盟 34 break; BZmLinux联盟 35 case 6: BZmLinux联盟 36 rssDS.Url = "http://www.cnblogs.com/rss"; BZmLinux联盟 37 lsBlog.DataBind(); BZmLinux联盟 38 lblHeader.Text = "博客园"; BZmLinux联盟 39 break; BZmLinux联盟 40 default: BZmLinux联盟 41 break; BZmLinux联盟 42 } BZmLinux联盟 43 }
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|
|
|
|
|