aspx简易生成RSS

GetArticlesRss.aspx
注意紫色底板的代码

<% @ Page Language="C#" AutoEventWireup="true" ContentType="text/xml"
   EnableTheming
="false"
   CodeFile
="GetArticlesRss.aspx.cs" Inherits="GetArticlesRss" 
%>
<head runat="server" visible="false"></head>

< asp:Repeater  id ="rptRss"  runat ="server" >
   
< HeaderTemplate >
      
< rss  version ="2.0" >
         
< channel >
            
< title > <! [CDATA[The Beer House: <%# RssTitle % > ]]> </ title >
            
< link > <% # FullBaseUrl  %> </ link >
            
< description > The Beer House: the site for beer fanatics </ description >
            
< copyright > Copyright 2005 by Marco Bellinaso </ copyright >
   
</ HeaderTemplate >
   
< ItemTemplate >
      
< item >
         
< title > <! [CDATA[<%# Eval("Title") % > ]]> </ title >
         
< author > <! [CDATA[<%# Eval("AddedBy") % > ]]> </ author >
         
< description > <! [CDATA[<%# Eval("Abstract") % > ]]> </ description >
         
< link > <! [CDATA[<%# FullBaseUrl + "ShowArticle.aspx?ID="+
            Eval("ID") %
> ]]> </ link >
         
< pubDate > <% string.Format("{0:R}"Eval("ReleaseDate"))  %> </ pubDate >
      
</ item >
   
</ ItemTemplate >
   
< FooterTemplate >
         
</ channel >
      
</ rss >
   
</ FooterTemplate >
</ asp:Repeater >

 

public   partial   class  GetArticlesRss : BasePage
{
   
private string _rssTitle = "Recent Articles";
   
public string RssTitle
   
{
      
get return _rssTitle; }
      
set { _rssTitle = value; }
   }


   
protected void Page_Load(object sender, EventArgs e)
   
{
      
int categoryID = 0;
      
if (!string.IsNullOrEmpty(this.Request.QueryString["CatID"]))
      
{
         categoryID 
= int.Parse(this.Request.QueryString["CatID"]);
         Category category 
= Category.GetCategoryByID(categoryID);
         _rssTitle 
= category.Title;
      }


      List
<Article> articles = Article.GetArticles(true, categoryID,
         
0, Globals.Settings.Articles.RssItems);
      rptRss.DataSource 
= articles;
      rptRss.DataBind();
   }

}

ReadRss.aspx

< div  class ="sectiontitle" >
< asp:Literal  runat ="server"  ID ="lblTitle" />
< asp:HyperLink  ID ="lnkRss"  runat ="server"  ToolTip ="Get the RSS for this content" >
   
< asp:Image  runat ="server"  ID ="imgRss"  ImageUrl ="~/Images/rss.gif"
AlternateText
="Get RSS feed"   />

</ asp:HyperLink >
</ div >

< asp:DataList  id ="dlstRss"  Runat ="server"  EnableViewState ="False" >
 
< ItemTemplate >
    
< small > <% Eval("PubDate""{0:d}" %> </ small >
 
< br >
 
< div  class ="sectionsubtitle" >< asp:HyperLink  Runat ="server"  ID ="lnkTitle"
    NavigateUrl
='<%#  Eval("Link") % > ' Text=' <% Eval("Title" %> ' /> </ div >
 
<% Eval("Description" %>
 
</ ItemTemplate >
</ asp:DataList >
< style ="text-align: right;" >
   
< small >< asp:HyperLink  Runat ="server"  ID ="lnkMore"   /></ small ></ p >

 

public   partial   class  RssReader : System.Web.UI.UserControl
{
   
public string RssUrl
   
{
      
get return lnkRss.NavigateUrl; }
      
set
      
{
         
string url = value;
         
if (value.StartsWith("/"|| value.StartsWith("~/"))
         
{
            url 
= (this.Page as BasePage).FullBaseUrl + value;
            url 
= url.Replace("~/""");
         }

         lnkRss.NavigateUrl 
= url;
      }

   }


   
public string Title
   
{
      
get return lblTitle.Text; }
      
set { lblTitle.Text = value; }
   }


   
public int RepeatColumns
   
{
      
get return dlstRss.RepeatColumns; }
      
set { dlstRss.RepeatColumns = value; }
   }


   
public string MoreUrl
   
{
      
get return lnkMore.NavigateUrl; }
      
set { lnkMore.NavigateUrl = value; }
   }


   
public string MoreText
   
{
      
get return lnkMore.Text; }
      
set { lnkMore.Text = value; }
   }


 
protected void Page_Load(object sender, EventArgs e)
   
{
      
try
      
{
         
if (this.RssUrl.Length == 0)
            
throw new ApplicationException("The RssUrl cannot be null.");

         
// create a DataTable and fill it with the RSS data,
         
// then bind it to the Repeater control
         XmlDataDocument feed = new XmlDataDocument();
         feed.Load(
this.RssUrl);
         XmlNodeList posts 
= feed.GetElementsByTagName("item");

         DataTable table 
= new DataTable("Feed");
         table.Columns.Add(
"Title"typeof(string));
         table.Columns.Add(
"Description"typeof(string));
         table.Columns.Add(
"Link"typeof(string));
         table.Columns.Add(
"PubDate"typeof(DateTime));

         
foreach (XmlNode post in posts)
         
{
            DataRow row 
= table.NewRow();
            row[
"Title"= post["title"].InnerText;
            row[
"Description"= post["description"].InnerText.Trim();
            row[
"Link"= post["link"].InnerText;
            row[
"PubDate"= DateTime.Parse(post["pubDate"].InnerText);
            table.Rows.Add(row);
         }


         dlstRss.DataSource 
= table;
         dlstRss.DataBind();
      }

      
catch (Exception)
      
{
         
this.Visible = false;
      }

   }

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值