c# AJAX实践VS2005 + RSSToolKit 开发你自己的RSS在线阅读器

2016-02-19 10:37 3 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的c# AJAX实践VS2005 + RSSToolKit 开发你自己的RSS在线阅读器,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - 编程语言 】

Rss 是一种描述和同步网站内容的格式,是目前使用最广泛的XML应用。RSS 搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者。发布一个 Rss 文件后,这个 Rss  Feed中包含的信息就能直接被其他站点调用,而且由于这些数据都是标准的XML格式,所以也能在其他的终端和服务中使用。

        在之前我们如果要实现博客的RSS订阅,通常都需要手写代码去生产或读取XML。现在有了RSSToolKit,这一切就变得简单了。你可以使用他在五分钟内实现自己的 Rss 在线阅读器。这篇文章将介绍如何读取站点 Rss 信息。

开发环境:VS2005 + RSSToolKit

一、首先我们需要建立一个ASP.NET AJAX站点

二、引入RssToolKit到项目中,建好的项目如下(CSS和图片文件可以使用我压缩文档里的)


三、可以开始写代码了
       1.首先需要一个ScriptManager、一个UpdatePanel、一个UpdateProgress。哈哈,都是废话AJAX页面程序大概都需要这些。其他的就是你的要求了。具体的页面代码如下:
  1 %@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %
  2 
  3 %@ Register Assembly="RssToolkit" Namespace="RssToolkit" TagPrefix="Rss" %
  4 !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
  5 html xmlns="http://www.w3.org/1999/xhtml"
  6 head runat="server"
  7     title向东博客阅读器|meil.livebaby.cn/title
  8     link href="CSS/Layout.css" rel="stylesheet" type="text/css" /
  9 
 10     script language="JavaScript" type="text/javascript"
 11     var ls;
 12     function ls_onClk(itemNumber) {
 13     
 14         if(ls == null) ls = $get("List0");
 15         
 16         ls.className = "";
 17         ls = $get("list" + itemNumber);
 18         ls.className = "current";
 19         return true;
 20     }
 21     /script
 22 
 23 /head
 24 body
 25     form id="form1" runat="server"
 26         asp:ScriptManager ID="ScriptManager1" runat="server" /
 27         div id="content-header"
 28             h1asp:HyperLink ID="HyperLink1" runat="server" Text="向东" Target="_blank" NavigateUrl="http://meil.livebaby.cn/index.html"/asp:HyperLink
 29                 博客阅读器/h1
 30         /div
 31         div id="content-container"
 32             div id="content-side1"
 33                 ul class="list-of-links"
 34                    li id="list0" class="current"
 35                         asp:LinkButton ID="lb0" runat="server" CommandArgument="0" OnClientClick="ls_onClk(0);" OnCommand="lnk_cmd"向东博客/asp:LinkButton/li
 36                    li id="list1"
 37                         asp:LinkButton ID="lb1" runat="server" CommandArgument="1" OnClientClick="ls_onClk(1);" OnCommand="lnk_cmd"财经博客/asp:LinkButton/li
 38                     li id="list2"
 39                         asp:LinkButton ID="lb2" runat="server" CommandArgument="2" OnClientClick="ls_onClk(2);" OnCommand="lnk_cmd"Flower博客/asp:LinkButton/li
 40                     li id="list3"
 41                         asp:LinkButton ID="lb3" runat="server" CommandArgument="3" OnClientClick="ls_onClk(3);" OnCommand="lnk_cmd"活力宝贝博客网/asp:LinkButton/li
 42                     li id="list4"
 43                         asp:LinkButton ID="lb4" runat="server" CommandArgument="4" OnClientClick="ls_onClk(4);" OnCommand="lnk_cmd"悠悠宝贝的博客/asp:LinkButton/li
 44                     li id="list5"
 45                         asp:LinkButton ID="lb5" runat="server" CommandArgument="5" OnClientClick="ls_onClk(5);" OnCommand="lnk_cmd"font color="red"向东博客园博客/font/asp:LinkButton/li
 46                     li id="li6"
 47                         asp:LinkButton ID="lb6" runat="server" CommandArgument="6" OnClientClick="ls_onClk(6);" OnCommand="lnk_cmd"font color="red"博客园/font/asp:LinkButton/li
 48                 /ul
 49             /div
 50             div id="content-main"
 51                 asp:UpdatePanel ID="updateMain" runat="server" UpdateMode="conditional" 
 52                     Triggers
 53                         asp:AsyncPostBackTrigger ControlID="lb0" /
 54                         asp:AsyncPostBackTrigger ControlID="lb1" /
 55                         asp:AsyncPostBackTrigger ControlID="lb2" /
 56                         asp:AsyncPostBackTrigger ControlID="lb3" /
 57                         asp:AsyncPostBackTrigger ControlID="lb4" /
 58                         asp:AsyncPostBackTrigger ControlID="lb5" /
 59                         asp:AsyncPostBackTrigger ControlID="lb6" /
 60                     /Triggers
 61                     ContentTemplate
 62                         h2asp:Label ID="lblHeader" runat="server"最新日志/asp:Label/h2
 63                         hr /
 64                         asp:Panel ID="pnlBlog" runat="server"
 65                             Rss:RssDataSource ID="rssDS" runat="server" MaxItems="0" Url=""/Rss:RssDataSource
 66                             asp:DataList ID="lsBlog" runat="server" DataSourceID="rssDS"
 67                                 ItemTemplate
 68                                     asp:Panel ID="panelHeader" runat="server" Style="cursor: pointer; color: #d61719;width: 100%; display: block;"
 69                                         span style="float: left;"%# Eval("title") %/span
 70                                         asp:Image ID="Image1" runat="server" Style="float: right;" ImageUrl="~/images/expand_blue.jpg" /
 71                                     /asp:Panel
 72                                     asp:Panel ID="Panel1" runat="server" Style="margin-top: 3px;width: 100%; background: transparent url(images/blogBack.gif) no-repeat text-top left;"
 73                                         %# Eval("description") %
 74                                         (asp:HyperLink ID="hlMore" runat="server" NavigateUrl='%# Eval("link") %' Target="_blank" Text="更多内容"/asp:HyperLink)
 75                                     /asp:Panel
 76                                     ajaxT:CollapsiblePanelExtender ID="cpe1" runat="server" TargetControlID="Panel1"
 77                                         ExpandControlID="panelHeader" CollapseControlID="panelHeader" SuppressPostBack="true"
 78                                         ImageControlID="Image1" Collapsed="true" ExpandedImage="~/images/collapse_blue.jpg"
 79                                         CollapsedImage="~/images/expand_blue.jpg" /
 80                                     hr style="border-bottom: 1px dotted #B2B2B2; margin: 0px;" /
 81                                 /ItemTemplate
 82                             /asp:DataList
 83                         /asp:Panel
 84                     /ContentTemplate
 85                 /asp:UpdatePanel
 86             /div
 87         /div
 88         asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="0" DynamicLayout="true"
 89             ProgressTemplate
 90                 div id="updProgress"
 91                     img alt="" src="images/indicator.gif" /
 92                     span数据获取中/span
 93                 /div
 94             /ProgressTemplate
 95         /asp:UpdateProgress
 96     /form
 97     centerdiva href="http://meil.livebaby.cn"meil.livebaby.cn/a  程序制作:向东  2007.7/center
 98 /body
 99 /html
100 
比较重要的是这两部分:
行66:Rss:RssDataSource ID="rssDS" runat="server" MaxItems="0" Url=""/Rss:RssDataSource
这就是实现RSS读取的核心了,有了这个标记就实现了RSS读取的一半工作,那剩下的吶?

看看下面者部分,lnk_cmd 命令实现了RSS数据的重绑定,这样你就可以实时的访问多个RSS地址了。如果你觉得这样还不够灵活,可以加个Textbox,然后用程序去绑定,这样也不错。不过,此次就不实现这个了,有兴趣的朋友可以试试,应该不难。哈哈!

代码如下:

行35:asp:LinkButton ID="lb0" runat="server" CommandArgument="0" OnClientClick="ls_onClk(0);"  
                                      OnCommand="lnk_cmd"向东博客/asp:LinkButton/li 
1     protected void lnk_cmd(object sender, CommandEventArgs e) 
2     { 
3         int command = Convert.ToInt32(e.CommandArgument); 
4  
5         rssDataBind(command); 
6     } 
rssDataBind就是绑定的函数,代码是: 
 1     protected void rssDataBind(int cmd) 
 2     { 
 3         switch (cmd) 
 4         { 
 5             case 0: 
 6                 rssDS.Url = "http://www.livebaby.cn/blog/u/meil/rss2.xml"; 
 7                 lsBlog.DataBind(); 
 8                 lblHeader.Text = "向东博客"; 
 9                 break; 
10             case 1: 
11                 rssDS.Url = "http://www.livebaby.cn/blog/u/money/rss2.xml"; 
12                 lsBlog.DataBind(); 
13                 lblHeader.Text = "财经博客"; 
14                 break; 
15             case 2: 
16                 rssDS.Url = "http://www.livebaby.cn/blog/u/flower/rss2.xml"; 
17                 lsBlog.DataBind(); 
18                 lblHeader.Text = "Flower博客"; 
19                 break; 
20             case 3: 
21                 rssDS.Url = "http://www.livebaby.cn/blog/rss2.asp"; 
22                 lsBlog.DataBind(); 
23                 lblHeader.Text = "活力宝贝博客网"; 
24                 break; 
25             case 4: 
26                 rssDS.Url = "http://www.livebaby.cn/blog/u/yoyo/rss2.xml"; 
27                 lsBlog.DataBind(); 
28                 lblHeader.Text = "悠悠宝贝的博客"; 
29                 break; 
30             case 5: 
31                 rssDS.Url = "http://www.cnblogs.com/meil/rss"; 
32                 lsBlog.DataBind(); 
33                 lblHeader.Text = "向东博客园博客"; 
34                 break; 
35             case 6: 
36                 rssDS.Url = "http://www.cnblogs.com/rss"; 
37                 lsBlog.DataBind(); 
38                 lblHeader.Text = "博客园"; 
39                 break; 
40             default: 
41                 break; 
42         } 
43     } 
就这么简单
 rssDS.Url = "http://www.livebaby.cn/blog/u/meil/rss2.xml";
 lsBlog.DataBind();
是不是就如DB数据的绑定。MS的东西虽然结构性不好,但是上手真的好快。
到底需要多少个Case就看你的需要了。我这里就绑定了六个RSS地址,你还可以更多,但要注意的是一定要和页面上的LinkButton数对应上。

最终的C#代码如下:
代码如下:

 1     protected void rssDataBind(int cmd) 
 2     { 
 3         switch (cmd) 
 4         { 
 5             case 0: 
 6                 rssDS.Url = "http://www.livebaby.cn/blog/u/meil/rss2.xml"; 
 7                 lsBlog.DataBind(); 
 8                 lblHeader.Text = "向东博客"; 
 9                 break; 
10             case 1: 
11                 rssDS.Url = "http://www.livebaby.cn/blog/u/money/rss2.xml"; 
12                 lsBlog.DataBind(); 
13                 lblHeader.Text = "财经博客"; 
14                 break; 
15             case 2: 
16                 rssDS.Url = "http://www.livebaby.cn/blog/u/flower/rss2.xml"; 
17                 lsBlog.DataBind(); 
18                 lblHeader.Text = "Flower博客"; 
19                 break; 
20             case 3: 
21                 rssDS.Url = "http://www.livebaby.cn/blog/rss2.asp"; 
22                 lsBlog.DataBind(); 
23                 lblHeader.Text = "活力宝贝博客网"; 
24                 break; 
25             case 4: 
26                 rssDS.Url = "http://www.livebaby.cn/blog/u/yoyo/rss2.xml"; 
27                 lsBlog.DataBind(); 
28                 lblHeader.Text = "悠悠宝贝的博客"; 
29                 break; 
30             case 5: 
31                 rssDS.Url = "http://www.cnblogs.com/meil/rss"; 
32                 lsBlog.DataBind(); 
33                 lblHeader.Text = "向东博客园博客"; 
34                 break; 
35             case 6: 
36                 rssDS.Url = "http://www.cnblogs.com/rss"; 
37                 lsBlog.DataBind(); 
38                 lblHeader.Text = "博客园"; 
39                 break; 
40             default: 
41                 break; 
42         } 
43     } 


源码下载地址:http://www.cnblogs.com/Files/meil/ReaderRss_src.rar
本文永久地址: http://www.livebaby.cn/blog/u/meil/archives/2007/1169.html

来源:http://www.tulaoshi.com/n/20160219/1595266.html

延伸阅读
标签: 浏览器
用IE9打造最好的RSS离线阅读器 IE9精心打造 第一步:订阅RSS 首先,你必须得订阅一个RSS,具体订阅方法,很简单。点击进入一个RSS订阅链接,点击后,会弹出RSS文章页面,再点击订阅该源,即可。如图: 点击订阅该源后,IE9会弹出一个对话框,如图: 再次点击订阅即可。 IE9精心打造 第二步:管理RSS 在IE9...
如何设置福昕pdf阅读器成默认pdf阅读器   方法一: 直接通过程序,您可以使用下列方法之一将福昕阅读器设置为默认阅读器: 当第一次打开福昕阅读器时,程序将弹出对话框询问是否将其设置为默认阅读器,选择是。 打开福昕阅读器,选择帮助菜单。在帮助菜单中,选择设为默认的PDF阅读器; 打开福昕阅读器,选择文件...
极速pdf阅读器默认阅读设置   1) 打开界面 进入设置 点击勾选 把极速PDF阅读器设置为默认
同时安装vs2005团队开发版和sql 2005企业版(downmoon原作) 由于微软在vs2005vsts团队开发版中集成了sql 2005 express,而在SQL 2005中又集成了vs2005Express,,所以当很多用户同时安装vs2005团队开发?:?sql2005企业版(downmoon)时,就会出现数据库连接失败的case 请按照如下步骤修改: OK! 作者: 邀月
标签: windows系统
win8系统将极速PDF阅读器设为默认阅读器的方法   具体方法如下: 1、在您的电脑桌面找到您的PDF文档; 2、鼠标经过该文档-----右键-----选择打开方式-----选择默认程序; 3、选择极速PDF阅读器,并一定要选择打勾所以.pdf文件都用这个应用打开(ps:一定要勾选); 4、然后就可以直接双击文档打开; win8系...

经验教程

288

收藏

98
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部