Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / ASP.NET

How to bind RSS feeds to a GridView

3.57/5 (5 votes)
8 Nov 2006CPOL1 min read 1   584  
How to bind RSS feeds to a GridView.

Sample Image - GridView_RSS.jpg

Introduction

RSS-Feeds are great to stay informed about recent changes in your favorite websites. But it is quiet hard to read the XML documents for humans. So, I will show how you can bind RSS feeds (for example, the newest articles on CodeProject) to a GridView.

The GridView

First, create a new aspx file and drop a GridView to the form. Next, turn off "Auto generate fields" from the GridView properties. Last, create a Template field for the hyperlink to the article and a bound field for the description. Here is the code:

HTML
<body>
 <form id="form1" runat="server">
   <asp:GridView ID="GridView1" runat="server" 
           AutoGenerateColumns="False">
     <Columns>
       <asp:TemplateField HeaderText="Title">
         <ItemTemplate>
          <a href=<%# Eval("link") %> 
            target=_blank><%# Eval("title") %></a>
         </ItemTemplate>
       </asp:TemplateField>
       <asp:BoundField DataField="description" 
           HeaderText="Description" />
     </Columns>
   </asp:GridView>
 </form>
</body>

Now, you can copy the code for the GridView as many times you need it. Maybe a GridView for aspalliance as well.

The code behind

Import the namespace System.Data and create the Page_Load event. Then, call the function BindGrid for every RSS-feed you will display on your web page. The function BindGrid needs three parameters:

  • the string pointing to the URL of the news feed
  • the GridView object that will display the news
  • and an integer indicating which part of the feed will be bound
VB.NET
Imports System.Data
Partial Class _Default
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, _
              ByVal e As System.EventArgs) Handles Me.Load
        BindGrid("http://www.codeproject.com/" & _ 
                 "webservices/articlerss.aspx", _
                 GridView1, 3)
        BindGrid("http://aspalliance.com/rss.aspx", _
                 GridView2, 2)
    End Sub
    Sub BindGrid(ByVal strRss As String, ByVal oGrid _
                 As GridView, ByVal iTable As Integer)
        Dim oDs As New DataSet
        oDs.ReadXml(strRss)
        oGrid.DataSource = oDs.Tables(iTable)
        oGrid.DataBind()
    End Sub
End Class

BindGrid creates a new DataSet object and reads the feed using ReadXml. Then the XML document is bound to the GridView. You can also find an online example here: How to bind RSS feeds to a GridView.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)