手机
当前位置:查字典教程网 >编程开发 >C#教程 >c# AJAX实践VS2005 + RSSToolKit 开发你自己的RSS在线阅读器
c# AJAX实践VS2005 + RSSToolKit 开发你自己的RSS在线阅读器
摘要:Rss是一种描述和同步网站内容的格式,是目前使用最广泛的XML应用。RSS搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者...

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

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

开发环境:VS2005+RSSToolKit

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

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

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

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

三、可以开始写代码了

1.首先需要一个ScriptManager、一个UpdatePanel、一个UpdateProgress。哈哈,都是废话AJAX页面程序大概都需要这些。其他的就是你的要求了。具体的页面代码如下:

1<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>

2

3<%@RegisterAssembly="RssToolkit"Namespace="RssToolkit"TagPrefix="Rss"%>

4<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

5<htmlxmlns="http://www.w3.org/1999/xhtml">

6<headrunat="server">

7<title>向东博客阅读器|meil.livebaby.cn</title>

8<linkhref="CSS/Layout.css"rel="stylesheet"type="text/css"/>

9

10<scriptlanguage="JavaScript"type="text/javascript">

11varls;

12functionls_onClk(itemNumber){

13

14if(ls==null)ls=$get("List0");

15

16ls.className="";

17ls=$get("list"+itemNumber);

18ls.className="current";

19returntrue;

20}

21</script>

22

23</head>

24<body>

25<formid="form1"runat="server">

26<asp:ScriptManagerID="ScriptManager1"runat="server"/>

27<divid="content-header">

28<h1><asp:HyperLinkID="HyperLink1"runat="server"Text="向东"Target="_blank"NavigateUrl="http://meil.livebaby.cn/index.html"></asp:HyperLink>

29博客阅读器</h1>

30</div>

31<divid="content-container">

32<divid="content-side1">

33<ulclass="list-of-links">

34<liid="list0"class="current">

35<asp:LinkButtonID="lb0"runat="server"CommandArgument="0"OnClientClick="ls_onClk(0);"OnCommand="lnk_cmd">向东博客</asp:LinkButton></li>

36<liid="list1">

37<asp:LinkButtonID="lb1"runat="server"CommandArgument="1"OnClientClick="ls_onClk(1);"OnCommand="lnk_cmd">财经博客</asp:LinkButton></li>

38<liid="list2">

39<asp:LinkButtonID="lb2"runat="server"CommandArgument="2"OnClientClick="ls_onClk(2);"OnCommand="lnk_cmd">Flower博客</asp:LinkButton></li>

40<liid="list3">

41<asp:LinkButtonID="lb3"runat="server"CommandArgument="3"OnClientClick="ls_onClk(3);"OnCommand="lnk_cmd">活力宝贝博客网</asp:LinkButton></li>

42<liid="list4">

43<asp:LinkButtonID="lb4"runat="server"CommandArgument="4"OnClientClick="ls_onClk(4);"OnCommand="lnk_cmd">悠悠宝贝的博客</asp:LinkButton></li>

44<liid="list5">

45<asp:LinkButtonID="lb5"runat="server"CommandArgument="5"OnClientClick="ls_onClk(5);"OnCommand="lnk_cmd"><fontcolor="red">向东博客园博客</font></asp:LinkButton></li>

46<liid="li6">

47<asp:LinkButtonID="lb6"runat="server"CommandArgument="6"OnClientClick="ls_onClk(6);"OnCommand="lnk_cmd"><fontcolor="red">博客园</font></asp:LinkButton></li>

48</ul>

49</div>

50<divid="content-main">

51<asp:UpdatePanelID="updateMain"runat="server"UpdateMode="conditional">

52<Triggers>

53<asp:AsyncPostBackTriggerControlID="lb0"/>

54<asp:AsyncPostBackTriggerControlID="lb1"/>

55<asp:AsyncPostBackTriggerControlID="lb2"/>

56<asp:AsyncPostBackTriggerControlID="lb3"/>

57<asp:AsyncPostBackTriggerControlID="lb4"/>

58<asp:AsyncPostBackTriggerControlID="lb5"/>

59<asp:AsyncPostBackTriggerControlID="lb6"/>

60</Triggers>

61<ContentTemplate>

62<h2><asp:LabelID="lblHeader"runat="server">最新日志</asp:Label></h2>

63<hr/>

64<asp:PanelID="pnlBlog"runat="server">

65<Rss:RssDataSourceID="rssDS"runat="server"MaxItems="0"Url=""></Rss:RssDataSource>

66<asp:DataListID="lsBlog"runat="server"DataSourceID="rssDS">

67<ItemTemplate>

68<asp:PanelID="panelHeader"runat="server"Style="cursor:pointer;color:#d61719;width:100%;display:block;">

69<spanstyle="float:left;"><%#Eval("title")%></span>

70<asp:ImageID="Image1"runat="server"Style="float:right;"ImageUrl="~/images/expand_blue.jpg"/>

71</asp:Panel>

72<asp:PanelID="Panel1"runat="server"Style="margin-top:3px;width:100%;background:transparenturl(images/blogBack.gif)no-repeattext-topleft;">

73<%#Eval("description")%>

74(<asp:HyperLinkID="hlMore"runat="server"NavigateUrl='<%#Eval("link")%>'Target="_blank"Text="更多内容"></asp:HyperLink>)

75</asp:Panel>

76<ajaxT:CollapsiblePanelExtenderID="cpe1"runat="server"TargetControlID="Panel1"

77ExpandControlID="panelHeader"CollapseControlID="panelHeader"SuppressPostBack="true"

78ImageControlID="Image1"Collapsed="true"ExpandedImage="~/images/collapse_blue.jpg"

79CollapsedImage="~/images/expand_blue.jpg"/>

80<hrstyle="border-bottom:1pxdotted#B2B2B2;margin:0px;"/>

81</ItemTemplate>

82</asp:DataList>

83</asp:Panel>

84</ContentTemplate>

85</asp:UpdatePanel>

86</div>

87</div>

88<asp:UpdateProgressID="UpdateProgress1"runat="server"DisplayAfter="0"DynamicLayout="true">

89<ProgressTemplate>

90<divid="updProgress">

91<imgalt=""src="images/indicator.gif"/>

92<span>数据获取中</span>

93</div>

94</ProgressTemplate>

95</asp:UpdateProgress>

96</form>

97<center><div><ahref="http://meil.livebaby.cn">meil.livebaby.cn</a>程序制作:向东2007.7</center>

98</body>

99</html>

100

比较重要的是这两部分:

行66:<Rss:RssDataSourceID="rssDS"runat="server"MaxItems="0"Url=""></Rss:RssDataSource>

这就是实现RSS读取的核心了,有了这个标记就实现了RSS读取的一半工作,那剩下的吶?

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

复制代码 代码如下:

行35:<asp:LinkButtonID="lb0"runat="server"CommandArgument="0"OnClientClick="ls_onClk(0);"

OnCommand="lnk_cmd">向东博客</asp:LinkButton></li>

1protectedvoidlnk_cmd(objectsender,CommandEventArgse)

2{

3intcommand=Convert.ToInt32(e.CommandArgument);

4

5rssDataBind(command);

6}

rssDataBind就是绑定的函数,代码是:

1protectedvoidrssDataBind(intcmd)

2{

3switch(cmd)

4{

5case0:

6rssDS.Url="http://www.livebaby.cn/blog/u/meil/rss2.xml";

7lsBlog.DataBind();

8lblHeader.Text="向东博客";

9break;

10case1:

11rssDS.Url="http://www.livebaby.cn/blog/u/money/rss2.xml";

12lsBlog.DataBind();

13lblHeader.Text="财经博客";

14break;

15case2:

16rssDS.Url="http://www.livebaby.cn/blog/u/flower/rss2.xml";

17lsBlog.DataBind();

18lblHeader.Text="Flower博客";

19break;

20case3:

21rssDS.Url="http://www.livebaby.cn/blog/rss2.asp";

22lsBlog.DataBind();

23lblHeader.Text="活力宝贝博客网";

24break;

25case4:

26rssDS.Url="http://www.livebaby.cn/blog/u/yoyo/rss2.xml";

27lsBlog.DataBind();

28lblHeader.Text="悠悠宝贝的博客";

29break;

30case5:

31rssDS.Url="http://www.cnblogs.com/meil/rss";

32lsBlog.DataBind();

33lblHeader.Text="向东博客园博客";

34break;

35case6:

36rssDS.Url="http://www.cnblogs.com/rss";

37lsBlog.DataBind();

38lblHeader.Text="博客园";

39break;

40default:

41break;

42}

43}

就这么简单

rssDS.Url="http://www.livebaby.cn/blog/u/meil/rss2.xml";

lsBlog.DataBind();

是不是就如DB数据的绑定。MS的东西虽然结构性不好,但是上手真的好快。

到底需要多少个Case就看你的需要了。我这里就绑定了六个RSS地址,你还可以更多,但要注意的是一定要和页面上的LinkButton数对应上。

最终的C#代码如下:

复制代码 代码如下:

1protectedvoidrssDataBind(intcmd)

2{

3switch(cmd)

4{

5case0:

6rssDS.Url="http://www.livebaby.cn/blog/u/meil/rss2.xml";

7lsBlog.DataBind();

8lblHeader.Text="向东博客";

9break;

10case1:

11rssDS.Url="http://www.livebaby.cn/blog/u/money/rss2.xml";

12lsBlog.DataBind();

13lblHeader.Text="财经博客";

14break;

15case2:

16rssDS.Url="http://www.livebaby.cn/blog/u/flower/rss2.xml";

17lsBlog.DataBind();

18lblHeader.Text="Flower博客";

19break;

20case3:

21rssDS.Url="http://www.livebaby.cn/blog/rss2.asp";

22lsBlog.DataBind();

23lblHeader.Text="活力宝贝博客网";

24break;

25case4:

26rssDS.Url="http://www.livebaby.cn/blog/u/yoyo/rss2.xml";

27lsBlog.DataBind();

28lblHeader.Text="悠悠宝贝的博客";

29break;

30case5:

31rssDS.Url="http://www.cnblogs.com/meil/rss";

32lsBlog.DataBind();

33lblHeader.Text="向东博客园博客";

34break;

35case6:

36rssDS.Url="http://www.cnblogs.com/rss";

37lsBlog.DataBind();

38lblHeader.Text="博客园";

39break;

40default:

41break;

42}

43}

本文永久地址:http://www.livebaby.cn/blog/u/meil/archives/2007/1169.html

【c# AJAX实践VS2005 + RSSToolKit 开发你自己的RSS在线阅读器】相关文章:

C#异步调用的好处和方法分享

给c#添加SetTimeout和SetInterval函数

C#中 paint()与Onpaint()的区别

常用.NET工具(包括.NET可再发行包2.0)下载

用C#获取硬盘序列号,CPU序列号,网卡MAC地址的源码

基于使用BeginInvoke,EndInvoke异步调用委托的实现代码

C#读取QQ纯真IP数据库QQWry.Dat的代码

C#控件命名规范汇总(超详细)

C# Stream 和 byte[] 之间的转换

C# 透明窗体制作实现方法比较分析

精品推荐
分类导航