Click here to Skip to main content
Click here to Skip to main content

How to bind RSS feeds to a GridView

By , 8 Nov 2006
Rate this:
Please Sign up or sign in to vote.

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:

<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
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)

About the Author

fstrahberger
Web Developer
Germany Germany
Florian works as consultant for change- and configuration management for about 7 years. In this environment he is often forced to work with unix, perl and shell scripts.
 
For more information about change- and configuration management (espacially Serena Dimensions) visit: www.venco.de
 
For video tutorials about asp.net, ajax, gridviews, ... (in german) visit: www.siore.com

Comments and Discussions

 
QuestionHow to get only top 2 records PinmemberMember 398531517-May-10 21:19 
AnswerRe: How to get only top 2 records PinmemberMember 41442081-Oct-10 4:37 
GeneralAutoGenerateColumns PinmemberMBrooker30-Nov-06 11:02 
GeneralNice, concrete article PinmemberAdrian Murillo15-Nov-06 8:23 
GeneralRe: Nice, concrete article Pinmemberfstrahberger15-Nov-06 21:07 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.140415.2 | Last Updated 8 Nov 2006
Article Copyright 2006 by fstrahberger
Everything else Copyright © CodeProject, 1999-2014
Terms of Use
Layout: fixed | fluid